Мы все знаем, что
$a1 = array('foo');
$a2 = $a1;
$a2[0] = 'bar';
// now $a1[0] is foo, and $a2[0] is bar. The array is copied
Однако, что я помню, читая, но не могу подтвердить с помощью Google, это то, что массив внутренне не копируется, пока не будет изменен.
$a1 = array('foo');
$a2 = $a1; // <-- this should make a copy
// but $a1 and $a2 point to the same data internally
$a2[0] = 'bar';
// now $a1[0] is foo, and $a2[0] is bar. The array is really copied
Мне было интересно, правда ли это. Если так, это было бы хорошо. Это увеличит производительность при многократной передаче большого массива, но только при чтении из него (после его создания один раз).