PHP基礎之流程控制1——if/else/elseif/else if
(PHP 4, PHP 5)
if 結構是很多語言包括 PHP 在內最重要的特性之一,它允許按照條件執行代碼片段。PHP 的 if 結構和 C 語言相似:
<?phpif (expr) statement?>
如同在表達式一章中定義的,expr 按照布爾求值。如果 expr 的值為 TRUE,PHP 將執行 statement,如果值為 FALSE ——將忽略 statement。有關哪些值被視為 FALSE 的更多信息參見轉換為布爾值一節。
如果 $a 大于 $b,則以下例子將顯示 a is bigger than b:
<?phpif ($a > $b) echo 'a is bigger than b';?>經常需要按照條件執行不止一條語句,當然并不需要給每條語句都加上一個 if 子句??梢詫⑦@些語句放入語句組中。例如,如果 $a 大于 $b,以下代碼將顯示 a is bigger than b 并且將 $a 的值賦給 $b:
<?phpif ($a > $b) { echo 'a is bigger than b'; $b = $a;}?>if 語句可以無限層地嵌套在其它 if 語句中,這給程序的不同部分的條件執行提供了充分的彈性。
else(PHP 4, PHP 5)
經常需要在滿足某個條件時執行一條語句,而在不滿足該條件時執行其它語句,這正是 else 的功能。else 延伸了 if 語句,可以在 if 語句中的表達式的值為 FALSE 時執行語句。例如以下代碼在 $a 大于 $b 時顯示 a is bigger than b,反之則顯示 a is NOT bigger than b:
<?phpif ($a > $b) { echo 'a is greater than b';} else { echo 'a is NOT greater than b';}?>else 語句僅在 if 以及 elseif(如果有的話)語句中的表達式的值為 FALSE 時執行。
elseif/else if(PHP 4, PHP 5)
elseif,和此名稱暗示的一樣,是 if 和 else 的組合。和 else 一樣,它延伸了 if 語句,可以在原來的 if 表達式值為 FALSE 時執行不同語句。但是和 else 不一樣的是,它僅在elseif 的條件表達式值為 TRUE 時執行語句。例如以下代碼將根據條件分別顯示 a is bigger than b,a equal to b 或者 a is smaller than b:
<?phpif ($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 時執行。
Note: 必須要注意的是 elseif 與 else if 只有在類似上例中使用花括號的情況下才認為是完全相同。如果用冒號來定義 if/elseif 條件,那就不能用兩個單詞的 else if,否則 PHP 會產生解析錯誤。
相關文章: