我有时从这样的数组中获取值:$var = array ('key1' => 'value1')['key1'];
,因此$var
应该等于value1
我在具有PHP v5.4.16的服务器中运行这样的代码,例如explode ('-', $str)[0];
,它运行正常。
现在,如果我将此代码传输到使用PHP v5.3.10的另一台服务器,我会收到错误(syntax error): syntax error, unexpected '[' ...
这是因为版本? (我不这么认为,因为版本之间的区别很小..),或者服务器中的某些设置? 谁能开导我?
答案 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];