PHP: ошибка при использовании разделителя строк внутри класса - PullRequest
1 голос
/ 22 января 2011

Почему я не могу использовать разделители (.) В переменных внутри класса?

class Object(){
    public $var  = "Hello"."World";
    # Or
    public $test = "Hello";
    public $var2 = $this->test."World";
}

Этот код дает мне такую ​​ошибку:

Ошибка синтаксического анализа: синтаксическая ошибканеожиданное «.», ожидая «,» или «;»в test.php в строке 2

и как мне это сделать?

1 Ответ

4 голосов
/ 22 января 2011

Потому что вы не можете объявлять свойства класса с помощью переменных выражений. Это означает, что вы не можете использовать любые арифметические операторы + - * / или оператор конкатенации . и не можете вызывать функции. Из ваших трех строк должно работать только $test; два других приведут вас к ошибкам.

Если вам нужно построить строки динамически, сделайте это в конструкторе.

class Object {
    public $test = "Hello";
    public $var2;

    public function __construct() {
        $this->var2 = $this->test . "World";
    }
}

Кстати, . не является "разделителем строк". Это оператор конкатенации. Вы используете его для объединения строк, а не разделения их.

...