为什么数组访问器语法不直接在函数的返回值上工作?

时间:2011-07-05 22:54:52

标签: php

为什么这样做:

$optionArray = get_option('myplugin_options');
$optionArray = $optionArray['defaultButton'];

但不是吗?

$optionArray = get_option('myplugin_options')['defaultButton'];

1 个答案:

答案 0 :(得分:0)

当直接从类似函数返回时,您无法使用该语法访问数组,您将在PHP中遇到语法错误。其他语言可能会让你做这类事情(我认为Python会这样),但它在PHP中是不正确的(至少在目前的5.3.x版本中)。

将函数括在括号或花括号中也无济于事,您仍然会收到语法错误:

$x = (range(1, 10))[4];
var_dump($x);

给出以下错误:

  

解析错误:语法错误,意外   '['在C:\ Users \ X \ Desktop \ example.php中   在第2行

也许在未来的PHP版本中,有可能访问这样的数组,但是现在,你只需要先将它们分配给变量:

$x = range(1, 10);
var_dump($x[4]);