PHP Conference Japan 2024

ArrayIterator::getArrayCopy

(PHP 5, PHP 7, PHP 8)

ArrayIterator::getArrayCopy取得陣列副本

說明

public ArrayIterator::getArrayCopy(): 陣列

取得陣列的副本。

警告

此函式目前沒有說明文件;僅提供其參數列表。

參數

此函式沒有參數。

回傳值

陣列的副本,如果 ArrayIterator 指的是一個物件,則返回公開屬性的陣列。

參見

新增筆記

使用者貢獻的筆記 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