Почему массив PHP модифицируется, когда его элемент присваивается ссылка?
При повторном назначении массиваs элемент, содержимое массива изменяется:
$arr = array(100, 200);
var_dump($arr);
/* shows:
array(2) {
[0]=>
int(100) // ← ← ← int(100)
[1]=>
int(200)
}
*/
$r = &$arr[0];
var_dump($arr);
/* shows:
array(2) {
[0]=>
&int(100) // ← ← ← &int(100)
[1]=>
int(200)
}
*/
Живи бегом. (Zend Engine будет хорошо, пока HHVM показывает "Процесс завершен с кодом 153 ".)
Почему элемент изменен?
Почему мы видим&int(100)
вместо ?int(100)
Это кажется совершенно странным. Какие'Чем объясняется эта странность?