当我运行以下代码时:
<?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)上测试了上面的代码,两个测试都通过了。
知道问题出在哪里?谢谢。
答案 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.
}