Я хочу использовать троичный оператор, чтобы назначить два разных значения переменной класса.
У меня есть следующий пример кода, где я получаю фатальную ошибку.
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();
Я пробовал без класса, и он работает нормально, но в классе я получаю ошибку.
Кто-нибудь может подсказать мне, как этого добиться?
заранее спасибо
Вы можете назначать постоянные значения только при объявлении свойств, вы не можете выполнять логические операции, как троичные.
Вы можете выполнить свою логику в своем __construct
функция:
class test {
public $data = NULL;
function __construct() {
$this -> data = true ? "working" : "not working";
echo $this -> data; // working
}
}
$test = new test();
От документация:
Это объявление может включать в себя инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть в состоянии быть оцененной во время компиляции и не должна зависеть от информации времени выполнения для оценки.
это работает, посмотри
class test {
public $data = NULL;
function __construct() {
echo $this -> data = true ? "working" : "not working"; //working
}
}
$test = new test();