在Array中使用点(。)时PHP解析错误

时间:2015-12-15 16:19:13

标签: php arrays parse-error

当我运行以下代码时:

<?php
private $config = [
  'cacheFile' => 'a'.'b'
];

我收到:

Parse error: syntax error, unexpected '.', expecting ']' in ...

我的配置是: PHP版本5.5.9-1ubuntu4.14, 服务器API FPM / FastCGI, nginx的/ 1.4.6

我使用Nginx / Apache在localhost(OS X El Capitan)上测试了上面的代码,两个测试都通过了。

知道问题出在哪里?谢谢。

1 个答案:

答案 0 :(得分:3)

根据docs

  

状态:在PHP 5.6中实现

  

此RFC将静态标量表达式带入解析器。这允许只接受静态值(const声明,属性声明,函数参数等)的地方也能够获取静态表达式。

因此你的5.5不能这样做。

请注意,只有在编译时可以计算的表达式才有效,所以

class foo {
   $x = 'a' . 'b'; // ok - can be calculated at compile-time
   $y = $_POST['foo']; // not ok - only calculable at runtime.
}