CakePHP应用程序显示语法错误,意外[

CakePHP应用程序显示语法错误,意外[,php,linux,cakephp,amazon-ec2,syntax-error,Php,Linux,Cakephp,Amazon Ec2,Syntax Error,这是我收到的错误: Error: syntax error, unexpected '[' Line: 10 我正在linux服务器Ubuntu3.7上运行我的cakephp应用程序,它是cakephp 2.3.7和PHP5.3.1。 现在,在安装linux之后,我在EC2上运行WAMP。在我的本地计算机上,我在Windows 7上运行XAMPP,但没有收到相同的错误。下面是显示错误的代码: 10: <?php foreach ($this->Session->read

这是我收到的错误:

Error: syntax error, unexpected '[' 
Line: 10
我正在linux服务器Ubuntu3.7上运行我的cakephp应用程序,它是cakephp 2.3.7和PHP5.3.1。 现在,在安装linux之后,我在EC2上运行WAMP。在我的本地计算机上,我在Windows 7上运行XAMPP,但没有收到相同的错误。下面是显示错误的代码:

 10:  <?php foreach ($this->Session->read('Customer')['Addresses'] as $key => $value) {
 11:  $ids[$z++] = $value['id'];
 12:  ?>
...
10:
...

由于它在localmachine上没有给出任何错误,我假设它与服务器环境有关。请帮助,谢谢!:)

问题在于您的PHP版本。PHP<5.4不接受
somefunction()['array']
的内容

解决办法是像这样分离该函数

$customer = $this->Session->read('Customer');
foreach ($customer['Addresses'] as $key => $value) {
   //etc
该问题已记录在案,您可以在附近找到相关信息

(PD:当然,另一个解决方案是至少将PHP升级到5.4,但您需要记住)

只有PHP 5.4+支持“函数数组解引用”:

必须先将结果分配给变量,才能在旧版本上工作:

$cust = $this->Session->read('Customer');
foreach ($cust['Addresses']...

在我的共享服务器上,我需要从PHP5.4更新到5.5,幸运的是它在cpanel中有一个选项