我一直在为PHP写一个解析器,虽然搞乱了一些第三方代码,但我遇到了一个关于[]运算符的奇怪案例.
通常,[]在赋值的左侧没有键使用意味着"添加为最后一个元素".
$a = array();
$a[] = 1;
Run Code Online (Sandbox Code Playgroud)
将在数组$ a的末尾添加1.
在前面提到的代码中,我看到了这样的一行:
$r =& $a[];
Run Code Online (Sandbox Code Playgroud)
当我试图删除&时,我得到了一个相当预期的致命错误:
致命错误:无法使用[]进行阅读
随着&不过,PHP不会抱怨的.表达式的含义是什么?
& $a[];
Run Code Online (Sandbox Code Playgroud)
?
小智 12
语法意味着"使用对$ a []的引用"或对最新创建的数组元素的引用.
<?php
$a=array( );
$a[] = "a";
$a[] = "b";
print_r($a);
$r =& $a[];
print_r($a);
$r = "c";
print_r($a);
Run Code Online (Sandbox Code Playgroud)
生产:
Array
(
[0] => a
[1] => b
)
Array
(
[0] => a
[1] => b
[2] =>
)
Array
(
[0] => a
[1] => b
[2] => c
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1164 次 |
| 最近记录: |