$value
bir kopya olacak, ama (ben burada yanlış varsa birisi beni düzeltin lütfen), PHP aslında geçmek-by-value türü şeyler hakkında çok akıllı. Eğer değişkeni değiştirirseniz aslında bir pass-by-başvuru yapmak ve sadece kopyalar. Örneğin:
function foo ($bar) {
echo $bar['x'];
// internally, $bar is a reference to $baz. (virtually) no extra memory used
$bar['y'] = 'Y';
// only now has the array been copied in memory
}
$baz = array('x' => '1', 'y' => '2');
foo($baz);
Eğer orijinal diziyi değiştirmek istiyorsanız yılında foreach
, bunu yapabilirsiniz:
// PHP 4
foreach (array_keys($veryFatArray) as $key) {
$value =& $veryFatArray[$key];
// ...
}
// PHP 5
foreach ($veryFatArray as $key => &$value) { }
Sadece $value
okuma ve yazmadan değilseniz, o zaman bir sorun olmamalı.