在PHP中声明默认类属性时无法使用连接?

Glo*_*alz 5 php oop class

在为PHP类声明属性的默认值时,似乎无法使用连接.是否有一个原因?

class Foo
{
    public $property = __DIR__ . '/';
}
Run Code Online (Sandbox Code Playgroud)

Phi*_*hil 9

适用于5.6之前的PHP版本

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

它们通过使用public,protected或private之一,然后是普通变量声明来定义.此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估.

对于更复杂的初始化,请使用构造函数

public function __construct()
{
    $this->settings = __DIR__ . '/';
}
Run Code Online (Sandbox Code Playgroud)

PHP 5.6及以上版本

从PHP 5.6版开始,在PHP中声明默认类属性时可以使用串联.请参阅https://wiki.php.net/rfc/const_scalar_exprs.

这允许只接受静态值(const声明,属性声明,函数参数等)的地方也能够获取静态表达式.