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

时间:2013-09-04 21:06:09

标签: php linux cakephp amazon-ec2 syntax-error

这是我收到的错误:

Error: syntax error, unexpected '[' 
Line: 10

我在linux服务器ubuntu 3.7上运行我的cakephp应用程序,它是cakephp 2.3.7和PHP 5.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:  ?>
...

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

2 个答案:

答案 0 :(得分:3)

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

解决方案是将该功能分开,如

$customer = $this->Session->read('Customer');
foreach ($customer['Addresses'] as $key => $value) {
   //etc

问题已记录在案,您可以找到有关此问题的another questions

(PD:当然,其他解决方案是至少将PHP升级到5.4,但是你需要记住migration changes

答案 1 :(得分:0)

只有PHP 5.4+支持“功能阵列解除引用”:

http://php.net/manual/en/migration54.new-features.php

您必须先将结果分配给变量才能使用旧版本:

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