PHP中的逻辑赋值运算符

时间:2015-08-13 10:41:29

标签: php logical-operators assignment-operator short-circuiting

在PHP中似乎不是一个逻辑赋值运算符。我希望能够将 SELECT * FROM table ORDER BY column DESC [ASC] LIMIT 6; 写为$a = $a || $b

请注意,这与$a ||= $b不同,$a |= $b$a评估为true时不会短路。

PHP中是否有这样的功能?

2 个答案:

答案 0 :(得分:0)

PHP似乎没有此功能。 Assignment Operator documentationLogical Operators documentation中没有任何内容提及此功能。此外,它不包含在top rated comment on the Assignment Operator page中,这是一个列表,有人根据其他页面中的信息编译了所有赋值运算符。

答案 1 :(得分:0)

PHP中没有||=&&=运算符,有一些语言使用它(例如),但他们已经以不同的方式实现了它。

所以唯一的方法就是这样:

$a = $b || $c;

您也可以使用??运算符,这意味着isset然后使用。

$a = $b ?? $c;

或者将值链接到它并使用last作为默认值(如果以前的值都没有为true):

$a = $b ?? $c ?? true;

逻辑赋值运算符只允许存储truefalse值,并且大多数情况下,您可以直接将其(并可选地设置)直接放在if语句中以保存代码行。