elseif/else if

elseif/else if

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

elseif,和此名稱暗示的一樣,是 ifelse 的組合。和 else 一樣,它延伸了 if 語句,可以在原來的 if 表達式值為 false 時執行不同語句。但是和 else 不一樣的是,它僅在 elseif 的條件表達式值為 true 時執行語句。例如以下程式碼將根據條件分別顯示 a is bigger than ba 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 時執行。

注意: 必須要注意的是 elseifelse 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;

?>

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *