ArrayIterator::getArrayCopy

(PHP 5, PHP 7, PHP 8)

ArrayIterator::getArrayCopy获取数组副本

描述

public ArrayIterator::getArrayCopy(): array

获取数组的副本。

警告

此函数目前没有文档;只有其参数列表可用。

参数

此函数没有参数。

返回值

array 的副本,或如果 ArrayIterator 指向 object 则为其公有属性的数组。

参见

添加注释

用户贡献注释 2 notes

3
irvine L
6 年前
以防某些人不知道这一点

(a). 'getArrayCopy()' 返回原始数组迭代器对象的副本。因此,在数组对象上使用(例如)'LimitIterator',然后调用 'getArrayCopy',可能不会返回当前(调整后的)对象。

(b). 相反,使用 'iterator_to_array' 函数来访问或返回数组对象迭代器(任何)的当前状态。使用上面的示例(在 '(a)' 中);将 'LimitIterator' 对象传递给 'iterator_to_array',应该返回数组(迭代器对象)的当前状态,而不是原始状态。
2
lenye01 at gmail dot com
13 年前
此方法与直接将对象分配给一个值的差异如下

<?php
$b
= array('name'=>'mengzhi','age'=>'12','city'=>'shanghai');
$a = new ArrayIterator($b);
$a->append(array('home'=>'china','work'=>'developer'));
$c = $a->getArrayCopy();
var_dump($a);
var_dump($c);
?>
结果
object(ArrayIterator)#1 (1) { ["storage":"ArrayIterator":private]=> array(4) { ["name"]=> string(7) "mengzhi" ["age"]=> string(2) "12" ["city"]=> string(8) "shanghai" [0]=> array(2) { ["home"]=> string(5) "china" ["work"]=> string(9) "developer" } } }

array(4) { ["name"]=> string(7) "mengzhi" ["age"]=> string(2) "12" ["city"]=> string(8) "shanghai" [0]=> array(2) { ["home"]=> string(5) "china" ["work"]=> string(9) "developer" } }
To Top