PHP 程式設計/if 語句
條件語句用於控制哪些語句被執行。它們由三個基本元素組成:
- if語句;
- elseif語句;以及
- if else語句。
PHP 中的條件語句結構類似於 C++ 和 Java 中的條件語句。結構以一個if子句開始,它由單詞 “if” 後跟一個真/假語句括在圓括號內( )。後續程式碼將包含在一個程式碼塊中,由花括號{ }表示。有時花括號會被省略,只有一行程式碼緊隨if語句。elseif和else子句有時出現在if子句之後以測試不同的語句。
該if子句表示 “如果該語句為真,我希望程式執行以下語句。如果為假,則忽略這些語句。” 從技術角度來說,它的工作原理如下:當遇到一個if語句時,真/假語句括號內的語句會被評估。如果發現該語句為真,則執行包含在花括號內的後續程式碼塊。但是,如果發現該語句為假,則程式會跳過這些行並執行下一行非空行。
在if子句之後是兩個可選的子句else和elseif。該elseif(或else if) 子句表示 “如果上一個語句為假,那麼讓我們看看,如果該語句為真。如果是,則執行以下程式碼。如果不是,則跳過它。”elseif語句只有在前面的if語句為假時才會被評估。否則會被跳過。除此之外,elseif子句的工作方式與常規if子句一樣。如果為真,則執行其程式碼塊;如果為假,則跳過其程式碼塊。
最後,該else子句用作if語句的 “萬能兜底”。本質上,else語句表示 “如果所有前面的測試都失敗,則執行此程式碼。”
<?php
$foo = 1;
$bar = 2;
if ($foo == $bar) {
echo "$foo is equal to $bar.";
} elseif ($foo > $bar) {
echo "$foo is greater than $bar.";
} else {
echo "$foo is less than $bar.";
}
?>
<?php
$lower = 10;
$upper = 100;
$needle = 25;
if (($needle >= $lower) && ($needle <= $upper)) {
echo "The needle is in the haystack.";
} elseif (($needle <= $lower) || ($needle >= $upper)) {
echo "The needle is outside of the haystack.";
}
?>
條件值透過基本的正式邏輯來實現。理解if子句(以及其他子句)如何評估這些條件值非常重要。
最容易理解的是使用boolean 值,這意味著條件值的結果要麼是 TRUE 要麼是 FALSE,而不是兩者都是。例如,如果變數$x = 4,並且一個條件語句使用表示式if ($x == 4)被呼叫,那麼表示式的結果將是 TRUE,並且if語句將被執行。但是,如果表示式是($x == 0),那麼結果將是 FALSE,並且程式碼將不會被執行。這很簡單。
當考慮複雜表示式時,情況會變得更加複雜。表示式可以與之連線的兩個基本運算子是AND (&&) 和OR (||).
我們得到變數$x和$y.
$x = 4;
$y = 8;
給定複雜表示式
($x == 4 AND $y == 8)
我們得到的結果是 TRUE,因為兩個單獨表示式的結果都是真的。當表示式使用 AND 運算子連線時,兩邊都必須為真,整個表示式才能為真。
類似地
($x == 4 OR $y == 8)
我們得到的結果是TRUE,因為至少有一個表示式為真。當表示式使用 OR 運算子連線時,至少有一邊必須為真,整個表示式才能為真。
相反地,
($x == 4 AND $y == 10)
此表示式將返回FALSE,因為整個表示式中至少有一個表示式為假。
但是,
($x == 4 OR $y == 10)
此表示式將返回TRUE,因為整個表示式中至少有一個表示式為真。
程式碼塊是一條或多條包含在一對花括號{ }之間的語句或命令。程式碼塊主要用於迴圈、條件語句和函式。程式碼塊可以巢狀在彼此內部,例如if語句在迴圈內部,迴圈在函式內部。
如果在某個條件語句之後沒有用花括號括起來的程式碼塊,則只執行下一條語句。建議避免使用這種方法,以防止在程式碼塊之後新增更多程式碼時發生意外情況。
if (FALSE)
echo 'FALSE evaluates to true.';
echo 'Who knew that FALSE was TRUE?';
的結果如何都會被評估。
if (FALSE) {
echo 'FALSE evaluates to true.';
echo 'Who knew that FALSE was TRUE?';
}
如果你正在寫一個長句子,其中有些部分是非靜態的,你可以使用 if 語句來建立字串。PHP 語法允許你在同一行內完成此操作,使用以下簡寫語法。
$money = 535; # $
print 'I have' . ($money > 500 ? '' : 'n’t') . ' enough money.';