Php 为什么';数组访问器语法是否直接作用于函数的返回值?

Php 为什么';数组访问器语法是否直接作用于函数的返回值?,php,Php,为什么这样做有效: $optionArray = get_option('myplugin_options'); $optionArray = $optionArray['defaultButton']; 但不是这个 $optionArray = get_option('myplugin_options')['defaultButton']; 当数组直接从这样的函数返回时,不能使用该语法访问数组,在PHP中会出现语法错误。其他语言可能允许您执行这类操作(我认为Python可以),但在PHP中

为什么这样做有效:

$optionArray = get_option('myplugin_options');
$optionArray = $optionArray['defaultButton'];
但不是这个

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

当数组直接从这样的函数返回时,不能使用该语法访问数组,在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]);

从PHP5.4开始,可以直接对函数或方法调用的结果进行数组解引用。