синтаксическая ошибка троичного оператора в классе

Я хочу использовать троичный оператор, чтобы назначить два разных значения переменной класса.

У меня есть следующий пример кода, где я получаю фатальную ошибку.

    class test {
public $data = (true) ? "working" : "not working"; //Parse error: syntax error, unexpected '(' in C:\xampp\htdocs\Faltu\test.php on line 15

function __construct() {
echo $this->data;
}
}
$test = new test();

Я пробовал без класса, и он работает нормально, но в классе я получаю ошибку.

Кто-нибудь может подсказать мне, как этого добиться?

заранее спасибо

1

Решение

Вы можете назначать постоянные значения только при объявлении свойств, вы не можете выполнять логические операции, как троичные.

Вы можете выполнить свою логику в своем __construct функция:

class test {
public $data = NULL;

function __construct() {
$this -> data = true ? "working" : "not working";
echo $this -> data; // working
}
}
$test = new test();

От документация:

Это объявление может включать в себя инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть в состоянии быть оцененной во время компиляции и не должна зависеть от информации времени выполнения для оценки.

3

Другие решения

это работает, посмотри

class test {
public $data = NULL;

function __construct() {
echo  $this -> data = true ? "working" : "not working"; //working

}
}
$test = new test();
0

По вопросам рекламы [email protected]