(PHP 4, PHP 5, PHP 7, PHP 8)
顧名思義,elseif
是 if
和 else
的組合。如同 else
,它延伸了 if
陳述式,以便在原始 if
運算式評估為 **false
** 時執行不同的陳述式。然而,與 else
不同的是,它只會在 elseif
條件運算式評估為 **true
** 時才執行該替代運算式。例如,以下程式碼將顯示 a 大於 b、a 等於 b 或 a 小於 b
<?php
if ($a > $b) {
echo "a 比 b 大";
} elseif ($a == $b) {
echo "a 等於 b";
} else {
echo "a 比 b 小";
}
?>
在同一個 if
陳述式中可以有多個 elseif
。第一個求值為 true
的 elseif
運算式(如果有的話)將會被執行。在 PHP 中,可以寫成 else if
(兩個詞),其行為與 elseif
(單個詞)相同。雖然語法上的意義略有不同(與 C 語言的行為相同),但重點是兩者都會產生完全相同的行為。
只有當前面的 if
運算式和任何前面的 elseif
運算式求值為 false
,且目前的 elseif
運算式求值為 true
時,才會執行 elseif
陳述式。
注意: 請注意,只有在使用大括號的情況下(如上例所示),
elseif
和else if
才會被視為完全相同。當使用冒號來定義if
/elseif
條件時,必須使用單個詞的elseif
。如果將else if
分成兩個詞,PHP 將會發生語法分析錯誤。
<?php
/* 錯誤的寫法: */
if ($a > $b):
echo $a." 比 ".$b." 大";
else if ($a == $b): // 無法編譯
echo "上述程式碼會造成語法分析錯誤。";
endif;
/* 正確的寫法: */
if ($a > $b):
echo $a." 比 ".$b." 大";
elseif ($a == $b): // 注意單詞的組合
echo $a." 等於 ".$b;
else:
echo $a." 不大於也不等於 ".$b;
endif;
?>