我遇到了PHP的这种奇怪行为,分配了字符串:
class a {
public $str = "a" . 'b';
}
$obj = new a();
echo $obj->str;
从不起作用,抛出以下错误:
PHP Parse错误:语法错误,意外'。',期待','或';'在第2行的/var/www/test.php中
在使用普通PHP时,它可以工作:
$str = "a" . 'b';
答案 0 :(得分:2)
您无法在构造函数之前对变量执行复杂赋值,您可以将简单的字符串或整数分配给变量。 dot被认为是函数
如果你必须分配它们,你应该使用构造函数。
请参阅http://www.php.net/manual/en/language.oop5.properties.php
答案 1 :(得分:0)
点。 operator作为一个函数,你不能使用函数声明类变量。
如果你有一个init或构造函数,你应该在这样的函数中初始化变量。
function __construct() {
$this->str = 'a' . 'b';
}
答案 2 :(得分:0)