一、elseif/else if語句
在PHP中,elseif 是 if 和 else 的組合,它延伸了 if 語句,它與 else 一樣,可以在原來的 if 表達式值為 false 時執(zhí)行不同語句。與 else 不同的是,它僅在 elseif 的條件表達式值為 true 時執(zhí)行語句。也就說明,如果 if 或 elseif 語句中的表達式為 true,則與之關(guān)聯(lián)的 elseif 語句將不會被執(zhí)行。
例如以下代碼將根據(jù)條件分別顯示 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 語句。當(dāng) if 表達式的值為 false 時,程序會依次檢查每個 elseif 語句的條件表達式的值。如果某個 elseif 的條件表達式的值為 true,則執(zhí)行該 elseif 語句塊中的代碼,并跳過后面的 elseif 和 else 語句塊。如果沒有任何一個 elseif 的條件表達式的值為 true,則執(zhí)行最后的 else 語句塊(如果有的話)。在 PHP 中,else if 也可以寫成兩個單詞的形式,其行為與一個單詞的 elseif 完全一樣。雖然句法分析的含義略有不同(與 C 語言相同),但兩者的行為是完全一致的。
elseif 的語句僅在之前的 if 和所有之前 elseif 的表達式值為 false,并且當(dāng)前的 elseif 表達式值為 true 時執(zhí)行。這意味著,如果前面的 if 或 elseif 的條件表達式都為 false,而當(dāng)前的 elseif 的條件表達式為 true,則與之關(guān)聯(lián)的 elseif 語句塊中的代碼將被執(zhí)行。
注意:elseif 與 else if 只有在類似上例中使用花括號的情況下才認(rèn)為是完全相同。如果用冒號來定義 if/elseif 條件,必須在一個單詞中使用 elseif。如果 else if 分割為兩個單詞,則 PHP 會產(chǎn)生解析錯誤。
二、使用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。這樣,當(dāng) $a 大于 $b 時,程序會輸出 $a 大于 $b;當(dāng) $a 等于 $b 時,程序會輸出 $a 等于 $b;否則,程序會輸出 $a 既不是大于也不是等于 $b。