在PHP中,我在以下代码行中收到“Parse error:syntax error,unexpected'['”:
return explode(" ", $message)[0];
我会提供更多细节,但这确实是关于它的。这条线对我来说看起来无可挑剔,实际上运行正常,直到我将它复制到另一个文件中。最大的区别在于,现在该行是类的一部分,并且它被一个我不太了解的大型软件库调用。可能导致这个问题的原因是什么?
更多背景信息:
public function getIRCCommand($message)
{
if ($message[0] != ":")
{
return explode(" ", $message)[0];
}
else
{
return preg_split("/\s+/", $message)[1];
}
}
答案 0 :(得分:1)
你可能在PHP 5.3或更低版本上运行。您需要升级到至少PHP 5.4以使其工作(或使用临时变量来访问返回数组的函数的元素)。
你在那里做的是array dereferencing。手册说:
从PHP 5.4开始,可以直接对函数或方法调用的结果进行数组取消引用。之前只能使用临时变量。
从PHP 5.5开始,可以对数组取消引用数组文字。
而且,要检查一下,让我们尝试运行
<?php
echo explode(" ", "1 2 3")[1];
for all kinds of diferent PHP versions。结果是,PHP版本5.4和hihgher输出“2”,这将是您想要的结果。