为什么初始化一个属性不起作用?

时间:2016-12-14 12:35:06

标签: php laravel

这是我的代码:

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

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

注意到这也有效:

class Log
{
    private $mode;

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

嗯,重点是什么?!

1 个答案:

答案 0 :(得分:4)

您只能使用常量值初始化属性。因此,您无法在此处使用config()或任何其他帮助。

  

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

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