Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP数组读取时,[]表示什么?_Php - Fatal编程技术网

从PHP数组读取时,[]表示什么?

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

我一直在为PHP编写解析器,在处理一些第三方代码时,遇到了一个关于
[]
操作符的奇怪情况

通常情况下,
[]
在赋值的左侧没有一个键,意思是“添加为最后一个元素”

将在数组$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
)