1

这是我收到的错误:

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:  ?>
...

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

4

2 回答 2

3

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

解决方案是将该功能分开

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

该问题已记录在案,您可以找到有关该问题的其他问题

(PD:当然,其他解决方案是至少将 PHP 升级到 5.4,但您需要记住迁移更改

于 2013-09-04T21:07:33.493 回答
0

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

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

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

$cust = $this->Session->read('Customer');
foreach ($cust['Addresses']...
于 2013-09-04T21:08:03.103 回答