Php 这是什么意思:$this->;获取soap提供者选项()[';位置';]

Php 这是什么意思:$this->;获取soap提供者选项()[';位置';],php,soap,Php,Soap,我发现了一个PHP库,其中一行是: $this->get_soap_provider_options()['location']; 但这会产生错误: Parse error: syntax error, unexpected '[' in ...path to file.. at line... 我不明白为什么函数参数get\u soap\u provider\u options()之后会写入['location']。它应该是get\u soap\u provider\u option

我发现了一个PHP库,其中一行是:

$this->get_soap_provider_options()['location'];
但这会产生错误:

Parse error: syntax error, unexpected '[' in ...path to file.. at line...

我不明白为什么函数参数
get\u soap\u provider\u options()
之后会写入
['location']
。它应该是
get\u soap\u provider\u options('location')
get\u soap\u provider\u options('array('location'))
或类似的内容


我认为这行代码适用于PHP5.4或更高版本。如何为旧版本的PHP编写这行代码?

您所说的PHP>=5.4的内容是正确的。此语法用于访问函数返回的数组。这是(从函数或方法)调用的

要访问PHP<5.4中数组的值,必须将函数或方法的结果存储在变量中。该变量将作为“临时”变量(参见文档中的示例7):

$tmp=$this->get_soap_provider_options();
//现在您可以使用>$tmp['location']<
//                   ^^^^^^^^^^^^^^^^^

get\u soap\u provider\u options()
返回一个数组,您尝试通过键
location
访问一个值(在数组中),例如7.Tom,如何为旧版本(5.4之前)编写$this->get\u soap\u provider\u options()['location']行?因为在结束参数大括号后,不允许在旧版本的php中编写
['location']
。它应该是这样的:
$this->get\u soap\u provider\u options('location')
$this->get\u soap\u provider\u options(array('location'))
。。。。。。。如何写入?尝试将函数的结果存储在变量中,并通过变量访问值。我不理解为什么在函数agrument get\u soap\u provider\u options()之后写入['location']。它应该是get_soap_provider_options('location')或get_soap_provider_options('array('location'))或类似的内容。
$tmp = $this->get_soap_provider_options();
// now you can use > $tmp['location']; <
//                   ^^^^^^^^^^^^^^^^^