读取PHP数组时,[]意味着什么?
我一直在为PHP编写一个解析器,同时还搞乱了一些第三方代码,我遇到了一个关于[]
运算符的奇怪例子。
通常情况下, []
在没有键的情况下用在赋值的左侧,意思是“添加为最后一个元素”。
$a = array();
$a[] = 1;
将在数组$ a的最后加1。
在前面的代码中,我看到了这样一行:
$r =& $a[];
当我试图删除&,我得到了一个相当预期的致命错误:
致命错误:无法使用[]进行读取
与&
虽然,PHP不会抱怨。 表达式的含义是什么?
& $a[];
?
语法的意思是“使用对$ a []的引用”或对最新创建的数组元素的引用。
<?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
)
我的猜测是它向数组添加了一个空元素,并给出该数组元素的$ ra引用。 你确定$ a应该是一个数组吗? 它也可能试图使用[]语法访问字符串的字符,在这种情况下,我不知道如何工作。
链接地址: http://www.djcxy.com/p/1857.html