不同版本中的PHP语法错误
我有时从这样的数组中获取值:不同版本中的PHP语法错误,php,syntax-error,Php,Syntax Error,我有时从这样的数组中获取值:$var=array('key1'=>'value1')['key1'],因此$var应等于value1 我在具有PHPV5.4.16的服务器上运行这样的代码,例如,explode('-',$str)[0]并且工作正常。 现在,如果我将此代码传输到另一个使用PHPV5.3.10的服务器,我会得到一个错误(语法错误):语法错误,意外的“[”… 这是因为版本吗?(我不这么认为,因为版本之间的差异太小了…),还是服务器中的某些设置? 有人能告诉我吗?是的,这取决于您正在运行
$var=array('key1'=>'value1')['key1']
,因此$var
应等于value1
我在具有PHPV5.4.16的服务器上运行这样的代码,例如,explode('-',$str)[0]代码>并且工作正常。
现在,如果我将此代码传输到另一个使用PHPV5.3.10的服务器,我会得到一个错误(语法错误):语法错误,意外的“[”…
这是因为版本吗?(我不这么认为,因为版本之间的差异太小了…),还是服务器中的某些设置?
有人能告诉我吗?是的,这取决于您正在运行的PHP版本
从PHP5.4开始,可以对
函数或方法直接调用。以前只能使用
临时变量
从PHP5.5开始,可以对数组文本进行数组解引用
在PHP5.3中,必须使用
$exploded = explode('-', $str);
$first = $exploded[0];
// or
list($first,) = explode('-', $str);
在PHP5.4及更高版本中,您可以使用
$first = explode('-', $str)[0];
PHP5.4添加了短数组语法。所以这都是关于版本的吗?好的,谢谢(Y)它与短数组语法无关,而是与数组解引用有关。@MichalBrašna是的。“已经添加了函数数组解引用,例如foo()[0]”。请参见我根据@MichalBrašna找到的