这是我收到的错误:
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带来任何错误,我假设它与服务器环境有关。请帮忙,谢谢! :)
答案 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']...