elseif/else if
(PHP 4, PHP 5, PHP 7, PHP 8)
elseif
,和此名稱暗示的一樣,是
if
和 else
的組合。和
else
一樣,它延伸了 if
語句,可以在原來的 if
表達式值為 false
時執行不同語句。但是和 else
不一樣的是,它僅在
elseif
的條件表達式值為 true
時執行語句。例如以下程式碼將根據條件分別顯示
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
部分,其中第一個表達式值為 true
(如果有的話)的
elseif
部分將會執行。在
PHP 中,也可以寫成「else
if」(兩個單詞),它和「elseif」(一個單詞)的行為完全一樣。句法分析的含義有少許區別(如果你熟悉
C 語言的話,與之行為相同),但是底線是兩者會產生完全一樣的行為。
elseif
的語句僅在之前的 if
和所有之前
elseif
的表達式值為 false
,並且目前的
elseif
表達式值為 true
時執行。
注意: 必須要注意的是
elseif
與else if
只有在類似上例中使用花括號的情況下才認為是完全相同。如果用冒號來定義if
/elseif
條件,那就不能用兩個單詞的else if
,否則 PHP 會產生解析錯誤。
<?php
/* 不正確的使用方法: */
if ($a > $b):
echo $a." is greater than ".$b;
else if ($a == $b): // 將無法編譯
echo "The above line causes a parse error.";
endif;
/* 正確的使用方法: */
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;
?>