如何在PHP中的对象变量中执行文本连接?

ede*_*ter 4 php class string-concatenation

如果我使用"点"在PHP类的变量中赋值,则失败.

例如:

class bla {
       public $a = 'a' . 'b';
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?

Bol*_*ock 9

您只能在构造函数中执行此操作,因为必须使用常量表达式在声明上初始化类变量/属性.从手册:

此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估.

这意味着您不能使用任何运算符或函数调用.

class bla {
    public $a;

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