PHP:赋值语句中的比较


PHP: Comparison within Assignment Statement

在我永无止境地追求优化我的行用法的过程中,我只是有一个快速的问题,关于在 PHP(以及其他语言,但我正在做一个 PHP 项目)中究竟可以作为赋值语句进入什么。

在我的程序中,我有一个特定的布尔变量,它由 if 语句总结的一些内容切换。我想,等等,如果语句的计算结果将计算为布尔值,我可以在一行中使用该逻辑,而不是将单独的赋值语句包装在 if 中。基本上我的问题是将:

$myVar = ($a == $b);

等效于

if ($a == $b) { $myVar = true; }
else { $myVar = false; }

如您所见,这为我节省了一整行,因此它将极大地影响我的项目。/讽刺

您正在寻找的是三级操作。类似的东西

$var = ($a === $b ? true : false);
echo $var;

根据$a === $b的评估结果,然后设置$var的值。

简短的回答,$myVar = ($a == $b);if ($a == $b) { $myVar = true; } else { $myVar = false; }相同。

如果你想更短,你甚至可以取下(...),让它几乎不$myVar = $a == $b;