2024年PHP开发者大会(日本)

ArrayIterator::getArrayCopy

(PHP 5, PHP 7, PHP 8)

ArrayIterator::getArrayCopy获取数组副本

描述

public ArrayIterator::getArrayCopy(): array

获取数组的副本。

警告

此函数目前未记录;仅提供其参数列表。

参数

此函数没有参数。

返回值

一个array的副本,如果ArrayIterator引用的是一个object,则为公共属性的数组。

参见

添加注释

用户贡献的注释 2条注释

irvine L
6年前
以防万一你们中的一些人不知道这一点

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

(b)。相反,使用 'iterator_to_array' 函数来访问或返回数组对象迭代器的当前状态(无论是什么)。使用上面的示例(在 '(a)' 中);将 'LimitIterator' 对象传递到 'iterator_to_array',应该返回数组(迭代器对象)的当前状态,而不是原始状态。
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