理解PHP的if语句阅读方式

Léo*_* 준영 0 php if-statement

PHP如何读取if语句?

我按此顺序有以下if语句

if ( $number_of_figures_in_email < 6) {
       -- cut: gives false
}


if($number_of_emails > 0) {                                                                         
      -- cut: gives false
} 

if ( $number_of_emails == 0) {
   -- cut: gives true
}
Run Code Online (Sandbox Code Playgroud)

代码随机行为.它有时会转到第三个if子句并且给我一个成功,而有时候输入变量是常量的前两个if子句中的一个.

这表明我不能仅使用if语句编码.

dec*_*eze 6

它没有"随机行为",它按照你告诉它做的:

if ($a) {
    // do A
}

if ($b) {
    // do B
}

if ($c) {
    // do C
}
Run Code Online (Sandbox Code Playgroud)

这三者ifs都是相互独立的.如果$a,$b而且$c都是true,它会做A,B和C.如果只有$a并且$c是真的,它会做A和C,依此类推.

如果您正在寻找更多"相互依赖"的条件,请使用if..else或嵌套ifs:

if ($a) {
    // do A and nothing else
} else if ($b) {
    // do B and nothing else (if $a was false)
} else if ($c) {
    // do C and nothing else (if $a and $b were false)
} else {
    // do D and nothing else (if $a, $b and $c were false)
}
Run Code Online (Sandbox Code Playgroud)

在上面只会执行一个动作.

if ($a) {
    // do A and stop
} else {
    // $a was false
    if ($b) {
        // do B
    }
    if ($c) {
        // do C
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面,B和C都可以完成,但前提$a是假的.

这个,BTW,非常普遍,完全不是PHP特有的.


Ran*_*ell 5

如果只想从许多不同的if语句中返回一个结果,请使用elseif,如下所示:

if ( $number_of_figures_in_email < 6) {
       -- cut: gives false
}
elseif($number_of_emails > 0) {                                                                         
      -- cut: gives false
} 
elseif ( $number_of_emails == 0) {
   -- cut: gives true
}
Run Code Online (Sandbox Code Playgroud)