PHP Conference Japan 2024

elseif/else if

(PHP 4, PHP 5, PHP 7, PHP 8)

顧名思義,elseififelse 的組合。如同 else,它延伸了 if 陳述式,以便在原始 if 運算式評估為 **false** 時執行不同的陳述式。然而,與 else 不同的是,它只會在 elseif 條件運算式評估為 **true** 時才執行該替代運算式。例如,以下程式碼將顯示 a 大於 ba 等於 ba 小於 b

<?php
if ($a > $b) {
echo
"a 比 b 大";
} elseif (
$a == $b) {
echo
"a 等於 b";
} else {
echo
"a 比 b 小";
}
?>

在同一個 if 陳述式中可以有多個 elseif。第一個求值為 trueelseif 運算式(如果有的話)將會被執行。在 PHP 中,可以寫成 else if(兩個詞),其行為與 elseif(單個詞)相同。雖然語法上的意義略有不同(與 C 語言的行為相同),但重點是兩者都會產生完全相同的行為。

只有當前面的 if 運算式和任何前面的 elseif 運算式求值為 false,且目前的 elseif 運算式求值為 true 時,才會執行 elseif 陳述式。

注意: 請注意,只有在使用大括號的情況下(如上例所示),elseifelse 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;

?>

新增註解

使用者貢獻的註解

此頁面沒有使用者貢獻的註解。
To Top