我想使用三元运算符为类变量分配两个不同的值。
我有以下代码示例我正在致命的错误。
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();
我在没有上课的情况下尝试过并且工作正常,但在课堂上我遇到了错误。
任何人都可以指导我如何实现这一目标吗?
提前致谢
答案 0 :(得分:3)
您只能在声明属性时指定常量值,而不能像三元一样执行逻辑运算。
您可以在__construct
功能中执行逻辑:
class test {
public $data = NULL;
function __construct() {
$this -> data = true ? "working" : "not working";
echo $this -> data; // working
}
}
$test = new test();
此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。
答案 1 :(得分:0)
它有效看看
class test {
public $data = NULL;
function __construct() {
echo $this -> data = true ? "working" : "not working"; //working
}
}
$test = new test();