2016-12-14 67 views
3

这里是我的代码:为什么初始化属性不起作用?

class Log 
{ 
    private $mode = config('my.log.mode'); 
} 

但它抛出语法错误 ..!为什么?怎么了?

注意到这个作品,以及:

class Log 
{ 
    private $mode; 

    public function __construct() 
    { 
     $this->mode = config('my.log.mode'); 
    } 
} 

好,有什么意义?

回答

4

只能用常量初始化属性。所以,你不能在这里使用config()或任何其他帮手。

初始化必须是一个恒定值 - 也就是说,它必须能够在编译时进行评估,并以不能依赖于运行时的信息进行评估

http://php.net/manual/en/language.oop5.properties.php

+0

..或PHP 5.6的标量表达式:http://docs.php.net/manual/en/migration56.new-features.php#migration56.new-features.const-scalar-exprs – simon