我见过很多关于使用||的问题在赋值表达式中,例如
$a = $b || $c
但我没有碰到过这个,所以请原谅我,如果它是重复的。
您是否可以缩写if语句中使用的比较,例如:
if ($a == ($b || $c || $d)...
或是否有必要将其全部写出来
if ( ($a == $b) || ($a == $c) || ($a == $d) )... ?
我正在使用PHP,但这个问题也适用于JavaScript
答案 0 :(得分:3)
你不能那样缩写。您必须像上一个代码块一样执行完整语法。如果您想缩短它,可以将与$a
进行比较的变量放入数组并使用in_array()
。这通常会起作用,但并非总是如此,具体取决于实际值。但是,无论如何这都不是那么好,因为你正在为另一个代码换掉一块代码,所以你并没有真正缩短代码。
或者,请考虑使用switch
而不是if
,特别是如果您需要根据哪些条件成立而执行不同的操作。
答案 1 :(得分:2)
您是否可以缩写if语句中使用的比较,例如
$a == ($b || $c || $d)
没有。首先评估括号中的表达式,即($b || $c || $d)
计算第一个真值。让我们考虑$b = 0, $c = 'foo', $d = null
,然后($b || $c || $d)
会产生'foo'
,因此您最终会比较$a == $c
。
相关:Shorthand for multiple OR expressions in if statement
(我实际上就JavaScript而回答了这个问题($a
是JS中的有效变量名),但在PHP中也是如此)。
答案 2 :(得分:2)