php - 不同版本的PHP语法错误

标签 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 '[' ...
是因为版本吗? (我不这么认为,因为版本之间的差异非常小..),还是服务器中的某些设置?
谁能启发我?

最佳答案

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

As of PHP 5.4 it is possible to array dereference the result of a function or method call directly. Before it was only possible using a temporary variable.

As of PHP 5.5 it is possible to array dereference an array literal.


在PHP 5.3中,您必须使用
$exploded = explode('-', $str);
$first = $exploded[0];
// or
list($first,) = explode('-', $str);
在PHP 5.4和更高版本中,您可以使用
$first = explode('-', $str)[0];

关于php - 不同版本的PHP语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21578437/

相关文章:

php - 如何将数据从mysql数据库传递到$_SESSOIN

oracle - plsql存储过程采用参数给出错误

postgresql -/bookmarks 处的 PG::SyntaxError - 我无法弄清楚 SQL 查询错误的原因

php - Symfony Ratchet WSS

javascript - 未从下拉列表中选择任何值后如何显示错误消息?

php - SQL删除特定范围内的表

lisp - 在结构的构造函数中指定多个选项?

php - 我只有一个字段提交到 mySQL 数据库

android - 使用ContentValues插入SQLite DB失败

python - 尝试分配给我同时就地创建的字符串时出现错误 'can' t assign to operator'