在PHP中检查多个变量(布尔值)

时间:2016-12-16 13:48:46

标签: php

我在我的代码中使用它,但我认为它可以改进并且可以更简单的方式完成吗?

if($phaseOne == true && $phaseTwo == true && $phaseThree == true) {

}

7 个答案:

答案 0 :(得分:6)

你可以这样做:

if($phaseOne && $phaseTwo && $phaseThree) { ... }

或者使用ternary operator,如果您尝试根据以下条件定义变量:

$var = ($phaseOne && $phaseTwo && $phaseThree) ? true : false;

希望这有帮助!

答案 1 :(得分:2)

假设您有一个包含任意数量逻辑变量的数组:

$logical = array($phraseOne,$phraseTwo,....);
$allTrue = array_reduce($logical, function ($x,$y) {return $x && $y;},true);
if($allTrue) {
}

答案 2 :(得分:0)

只做:

if($phaseOne && $phaseTwo && $phaseThree)

答案 3 :(得分:0)

您不需要将其与真实比较。

if ($phaseOne && $phaseTwo && $phaseThree) {

}

这是因为任何比较的结果都是布尔值:

var_dump(1 == 1); // bool(true)
var_dump(1 == 2); // bool(false)

此外,如果变量包含数字,则可以直接使用:

if (1) {
     // This will be executed
}

if (0) {
     // This will not be executed
}

零将始终视为false,任何其他数字(正数或负数)将为true

答案 4 :(得分:0)

除非你需要检查每个变量是否与布尔或变量明确相同,否则(see this stack overflow thread

我会这样做

if ($phaseOne && $phaseTwo && $phaseThree) {}

否则,我会这样做

if ($phaseOne === true && $phaseTwo === true && $phaseThree === true) {}

答案 5 :(得分:0)

试试这个:

 ($phaseOne && $phaseTwo && $phaseThree) ? {//do something} : '';

答案 6 :(得分:0)

虽然我认为这是任意的,控制性的,微不足道的,并且不会鼓吹使用它,只是为了娱乐和学习 - 这里有一些典型的php变量类型杂耍,它们也可以工作并占用最少的空间......在源代码长度方面有效。

if($phaseOne*$phaseTwo*$phaseThree) { ... }