PHP无法在类中解析concatinated字符串

时间:2016-08-25 13:53:31

标签: php string compiler-errors

我遇到了PHP的这种奇怪行为,分配了字符串:

class a {
    public $str = "a" . 'b';
}

$obj = new a();
echo $obj->str;

从不起作用,抛出以下错误:

  

PHP Parse错误:语法错误,意外'。',期待','或';'在第2行的/var/www/test.php中

在使用普通PHP时,它可以工作:

$str = "a" . 'b';

3 个答案:

答案 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)

查看documentation example

检查您的PHP版本。

class a {
    public $str = 'a' . 'b';
}