一、elseif/else if语句
在PHP中,elseif 是 if 和 else 的组合,它延伸了 if 语句,它与 else 一样,可以在原来的 if 表达式值为 false 时执行不同语句。与 else 不同的是,它仅在 elseif 的条件表达式值为 true 时执行语句。也就说明,如果 if 或 elseif 语句中的表达式为 true,则与之关联的 elseif 语句将不会被执行。
例如以下代码将根据条件分别显示 a is bigger than b,a equal to b 或者 a is smaller than b:
<?php if ($a > $b) { echo "a is bigger than b"; } elseif ($a == $b) { echo "a is equal to b"; } else { echo "a is smaller than b"; } ?>
在一个 if 语句中,可以有多个 elseif 语句。当 if 表达式的值为 false 时,程序会依次检查每个 elseif 语句的条件表达式的值。如果某个 elseif 的条件表达式的值为 true,则执行该 elseif 语句块中的代码,并跳过后面的 elseif 和 else 语句块。如果没有任何一个 elseif 的条件表达式的值为 true,则执行最后的 else 语句块(如果有的话)。在 PHP 中,else if 也可以写成两个单词的形式,其行为与一个单词的 elseif 完全一样。虽然句法分析的含义略有不同(与 C 语言相同),但两者的行为是完全一致的。
elseif 的语句仅在之前的 if 和所有之前 elseif 的表达式值为 false,并且当前的 elseif 表达式值为 true 时执行。这意味着,如果前面的 if 或 elseif 的条件表达式都为 false,而当前的 elseif 的条件表达式为 true,则与之关联的 elseif 语句块中的代码将被执行。
注意:elseif 与 else if 只有在类似上例中使用花括号的情况下才认为是完全相同。如果用冒号来定义 if/elseif 条件,必须在一个单词中使用 elseif。如果 else if 分割为两个单词,则 PHP 会产生解析错误。
二、使用elseif/else if语句
下面示例 elseif 语句在PHP中的使用方法:
1、不正确的使用方法:
<?php if ($a > $b): echo $a." is greater than ".$b; else if ($a == $b): // 将无法编译 echo "The above line causes a parse error."; endif; ?>
在这个例子中,我们使用了冒号来定义 if/elseif 条件。然而,在 PHP 中,我们需要使用两个单词的 elseif,即 elseif。如果我们只使用一个单词,PHP 会抛出解析错误。
2、正确的使用方法:
<?php if ($a > $b): echo $a." is greater than ".$b; elseif ($a == $b): // 注意使用了一个单词的 elseif echo $a." equals ".$b; else: echo $a." is neither greater than or equal to ".$b; endif; ?>
在这个例子中,我们正确地使用了两个单词的 elseif。这样,当 $a 大于 $b 时,程序会输出 $a 大于 $b;当 $a 等于 $b 时,程序会输出 $a 等于 $b;否则,程序会输出 $a 既不是大于也不是等于 $b。