从PHP数组读取时,[]表示什么?
我一直在为PHP编写解析器,在处理一些第三方代码时,遇到了一个关于从PHP数组读取时,[]表示什么?,php,Php,我一直在为PHP编写解析器,在处理一些第三方代码时,遇到了一个关于[]操作符的奇怪情况 通常情况下,[]在赋值的左侧没有一个键,意思是“添加为最后一个元素” 将在数组$a的末尾添加1 在前面提到的代码中,我看到了这样一行: $r =& $a[]; 当我试图删除&时,我得到了一个预期的致命错误: 致命错误:无法使用[]进行读取 然而,对于&,PHP一点也不抱怨。这个表达的意思是什么 & $a[]; ?语法的意思是“使用对$a[]的引用”或对最新创建的数组元素的引用 <?p
[]
操作符的奇怪情况
通常情况下,[]
在赋值的左侧没有一个键,意思是“添加为最后一个元素”
将在数组$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);
我的猜测是,它向数组中添加了一个空元素,并为$r提供了对该数组元素的引用。你确定$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
)