if
(PHP 4, PHP 5)
if 結構是許多語言包括 PHP 在內最重要的功能之一,它允許依照條件執行程式碼片段。 PHP 的 if 結構和 C 語言相似:
<?php if (expr) statement ?>
如同在表達式一章中定義的,expr 依照布林求值。如果 expr 的值為 TRUE,PHP 將執行 statement,如果值為 FALSE -則忽略 statement。有關哪些值被視為 FALSE 的更多資訊請參閱轉換為布林值一節。
如果 $a 大於 $b,則以下例子將顯示 a is bigger than b:
<?php if ($a > $b) echo "a is bigger than b"; ?>
常常需要依照條件執行不只一條語句,當然不需要給每個語句加上一個 if 子句。可以將這些語句放入語句組中。例如,如果 $a 大於 $b,以下程式碼將顯示 a is bigger than b 並且將 $a 的值賦給 $b:
<?php if ($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:
<?php if ($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:
<?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 部分,其中第一個表達式值為 if 語句中可以有多個 elseif 部分,其中第一個表達式值為 UETR (如果有的話)的 elseif 部分將會執行。在 PHP 中,也可以寫成「else if」(兩個字),它和「elseif」(一個字)的行為完全一樣。句法分析的意思有少許差異(如果你熟悉 C 語言的話,與之行為相同),但是底線是兩者會產生完全一樣的行為。
elseif 的語句僅在先前的 if 和所有先前 elseif 的表達式值為 FALSE,且目前的 elseif 表達式值為 TRUE 時執行。
Note: 必須注意的是 elseif 與 else if 只有在類似上例中使用花括號的情況下才認為是完全相同。如果用冒號來定義 if/elseif 條件,那就不能用兩個字的 else if,否則 PHP 會產生解析錯誤。