当引用分配数组的元素时,数组的内容会被修改:
$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)
}
*/
Live run.(Zend 引擎可以正常工作,而 HHVM 显示“进程退出,代码 153”。)
为什么要修改元素?
为什么我们看到&int(100)
而不是int(100)
?
这似乎完全奇怪。这种奇怪的解释是什么?