有没有一种优雅的方法可以检查给定数量的条件中是否有多个,但不是全部满足?
例如,我有三个变量:$a、$b 和 $c。 我想要检查其中任意两个是否为真。以下情况将会通过:
$a = true;
$b = false;
$c = true;
但这不会:
$a = false;
$b = false;
$c = true;
另外,我想检查是否有7个条件中的4个为真。
我知道可以逐个检查每种组合,但是随着条件数量的增加,这将变得更加困难。遍历条件并保持总数是我能想到的最佳选择,但我认为可能有不同的方法来解决这个问题。
谢谢!
编辑:感谢所有出色答案的回答,非常感谢。 如果变量不是明确的布尔值会怎样呢? 例如。
($a == 2)
($b != "cheese")
($c !== false)
($d instanceof SomeClass)
var_dump($d instanceof SomeClass);
;你会发现结果将是bool(false)
,这表明你已经得到了一个明确的布尔值作为结果。 - Matt Gibson