我一直在为
PHP写一个解析器,虽然搞乱了一些第三方代码,但我遇到了一个关于[]运算符的奇怪案例.
通常,在赋值左侧没有键的情况下使用[],意思是“添加为最后一个元素”.
$a = array(); $a[] = 1;
将在数组$a的末尾添加1.
在前面提到的代码中,我看到了这样的一行:
$r =& $a[];
Fatal error: Cannot use [] for reading
与&但是,PHP并没有抱怨.表达式的含义是什么?
& $a[];
?
语法意味着“使用对$a []的引用”或对最新创建的数组元素的引用.
原文链接:/php/132012.html<?PHP $a=array( ); $a[] = "a"; $a[] = "b"; print_r($a); $r =& $a[]; print_r($a); $r = "c"; print_r($a);
生产:
Array ( [0] => a [1] => b ) Array ( [0] => a [1] => b [2] => ) Array ( [0] => a [1] => b [2] => c )