ArrayIterator::getArrayCopy
(PHP 5, PHP 7, PHP 8)
ArrayIterator::getArrayCopy — 配列のコピーを取得する
説明
配列のコピーを取得します。
警告
この関数は、 現在のところ詳細な情報はありません。引数のリストのみが 記述されています。
パラメータ
この関数にはパラメータはありません。
戻り値
配列のコピーを返します。 ArrayIterator がオブジェクトを参照している場合は public プロパティの配列を返します。
+add a note
User Contributed Notes 2 notes
irvine L ¶
6 years ago
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).
lenye01 at gmail dot com ¶
13 years ago
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" } }
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google