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语句编码.
它没有"随机行为",它按照你告诉它做的:
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特有的.
如果只想从许多不同的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)