PHP 中的逻辑赋值运算符

Logical assignment operator in PHP

PHP 中似乎没有逻辑赋值运算符。我希望能够将 $a = $a || $b 写成 $a ||= $b.

请注意,这与$a |= $b不同,后者在$a计算为true时不会短路。

PHP有这样的功能吗?

PHP 似乎没有这个功能。 Assignment Operator documentation or in the Logical Operators documentation that mentions this functionality. Also, it isn't included in the top rated comment on the Assignment Operator page里面什么都没有,这是有人根据其他页面的信息整理的所有赋值运算符的列表。

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

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

$a = $b || $c;

你也可以使用??运算符,意思是如果isset则使用.

$a = $b ?? $c;

或将值链接到它并使用最后一个作为默认值(如果前一个评估的 none 为真):

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

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