奇怪的php数组语法错误

时间:2013-01-28 14:20:45

标签: php

我有: 在我的电脑上:wamp服务器(apache + php-5.4.3 + mysql) 在我的vps:nginx + php5-fpm + mysql(所有最新的ubuntu 64位服务器存储库)。

最近我重新安装了整个vps

我的问题是,

像这样的声明:

function foo($arr){

return $arr;

}


foo(['foo1','foo2','foo3'])

在我的电脑上运行,并且曾经在服务器上工作(相同的安装),但现在它给出了 错误如:

Parse error: syntax error, unexpected '[' in /home/Websites/Domains/squazza/php/db.php 
on line 261 

(用Array替换[]确实解决了问题)

现在我假设这个问题与php.ini有关,所以我想问什么设置可能会影响这种行为以及为什么?

3 个答案:

答案 0 :(得分:4)

如果你看一下documentation那个短语法仅在php 5.4+中可用,我怀疑你的php版本是不同的。

PHP5.4中的list个新功能可能会对您有所帮助。

答案 1 :(得分:1)

你可能没有使用PHP 5.4。在脚本中运行phpinfo()并进行检查。请记住,您可以在CLI模式下使用不同的PHP版本。

答案 2 :(得分:0)

正如@ piddl0r所指出的,PHP 5.4中添加了短数组语法([ 1, 2, 3 ])。您会在The Ubuntu Package Archive注明Ubuntu 12.04 - Precise Pangolin - only provided PHP 5.3.10; PHP 5.4.6 was provided in the next release, Quantal。要检查您的PHP版本,请在命令行中使用phpinfo()php --version