不同版本的PHP语法错误

时间:2014-02-05 13:17:30

标签: php syntax-error

我有时从这样的数组中获取值:$var = array ('key1' => 'value1')['key1'];,因此$var应该等于value1

我在具有PHP v5.4.16的服务器中运行这样的代码,例如explode ('-', $str)[0];,它运行正常。 现在,如果我将此代码传输到使用PHP v5.3.10的另一台服务器,我会收到错误(syntax error): syntax error, unexpected '[' ...

这是因为版本? (我不这么认为,因为版本之间的区别很小..),或者服务器中的某些设置? 谁能开导我?

1 个答案:

答案 0 :(得分:1)

是的,这取决于您运行的PHP版本。作为PHP docs mentions

  

从PHP 5.4开始,可以对a的结果进行数组解除引用   函数或方法直接调用。之前它只能使用一个   临时变量。

     

从PHP 5.5开始,可以对数组取消引用数组文字。

在PHP 5.3中,您必须使用

$exploded = explode('-', $str);
$first = $exploded[0];
// or
list($first,) = explode('-', $str);

在PHP 5.4及更高版本中,您可以使用

$first = explode('-', $str)[0];