在PHP中似乎不是一个逻辑赋值运算符。我希望能够将 SELECT * FROM table ORDER BY column DESC [ASC] LIMIT 6;
写为$a = $a || $b
。
请注意,这与$a ||= $b
不同,$a |= $b
在$a
评估为true
时不会短路。
PHP中是否有这样的功能?
答案 0 :(得分:0)
PHP似乎没有此功能。 Assignment Operator documentation或Logical Operators documentation中没有任何内容提及此功能。此外,它不包含在top rated comment on the Assignment Operator page中,这是一个列表,有人根据其他页面中的信息编译了所有赋值运算符。
答案 1 :(得分:0)
PHP中没有||=
或&&=
运算符,有一些语言使用它(例如ruby),但他们已经以不同的方式实现了它。
所以唯一的方法就是这样:
$a = $b || $c;
您也可以使用??
运算符,这意味着isset
然后使用。
$a = $b ?? $c;
或者将值链接到它并使用last作为默认值(如果以前的值都没有为true):
$a = $b ?? $c ?? true;
逻辑赋值运算符只允许存储true
或false
值,并且大多数情况下,您可以直接将其(并可选地设置)直接放在if语句中以保存代码行。