ArrayIterator::getArrayCopy()
(PHP 5,PHP 7)
Get array copy
说明
public ArrayIterator::getArrayCopy(void) : array
Get a copy of an array.
Warning本函数还未编写文档,仅有参数列表。
参数
此函数没有参数。
返回值
A copy of thearray,or array of public properties if ArrayIterator refers to anobject.
参见
- ArrayIterator::valid() Check whether array contains more entries
the difference of this method and the direct assign the object to a value is as follows: <?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); ?> result: 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" } }
Just in case some of you out there do NOT know this: (a). 'getArrayCopy()', returns a copy of the ORIGINAL array - iterator object. Therefore, using (for example) 'LimitIterator' on an array-object, and then calling 'getArrayCopy' afterwards, might not return the current (adjusted) object. (b). Instead, use the 'iterator_to_array' function, in order to access, or return, the current state of the array-object-iterator (whatever). Using the example above (in '(a)'); passing the 'LimitIterator' object into 'iterator_to_array', should return the CURRENT, and NOT ORIGINAL state of your array (iterator object).