PHP if ... else

在本教程中,你將學習如何使用 PHP 中的 if ... elseif ... else 語句編寫決策程式碼。

PHP 條件語句

與大多數程式語言一樣,PHP 還允許你根據執行時邏輯或比較測試條件的結果編寫執行不同操作的程式碼。這意味著,你可以以表示式的形式建立測試條件,該表示式的計算結果為 true 或 false,並且根據這些結果,你可以執行某些操作。

PHP 中有幾個語句可用於做出決策:

  • if 語句
  • if...else 語句
  • if...elseif...else 語句
  • switch...case 語句

我們將在接下來的部分中探討每一個條件判斷語句。

if 語句

if 語句用來執行程式碼塊僅當指定的條件評估為真。這是最簡單的 PHP 條件語句,可以寫成:

if (condition){ // Code to be executed } 

以下示例將輸出“祝週末愉快!” 如果當天是星期五:

<?php
$d = date("D");
if($d == "Fri"){
    echo "Have a nice weekend!";
}
?>

if...else 宣告

你可以通過在 if 語句中新增 else 語句來提供替代選擇,從而增強決策制定流程。該 IF … ELSE 語句可以執行的程式碼,一個塊,如果指定的條件計算為真和另一個程式碼塊如果計算結果為假。它可以這樣編寫:

if (condition){ // Code to be executed if condition is true } else { // Code to be executed if condition is false } 

以下示例如果當天是星期五將輸出 Have a nice weekend! ,否則將輸出 Have a nice day!

<?php
$d = date("D");
if($d == "Fri"){
    echo "Have a nice weekend!";
} else{
    echo "Have a nice day!";
}
?>

if...elseif...else 語句

if...elseif...else 語句結合了多個 if...else 語句。

if (condition1){ // Code to be executed if condition1 is true } elseif (condition2){ // Code to be executed if the condition1 is false and condition2 is true } else { // Code to be executed if both condition1 and condition2 are false } 

以下示例如果當天是星期五將輸出 Have a nice weekend! ,如果當天是星期天輸出 Have a nice Sunday!,否則它將輸出 Have a nice day!

<?php
$d = date("D");
if($d == "Fri"){
    echo "Have a nice weekend!";
} elseif($d == "Sun"){
    echo "Have a nice Sunday!";
} else{
    echo "Have a nice day!";
}
?>

你將在下一章中來學習 PHP switch-case 語句。

三元運算子

三元運算子提供了編寫 if ... else 語句的簡便方法。三元運算子由問號(?)符號表示,它需要三個運算元:要檢查的條件,結果 ture 和結果 false

要了解此運算子的工作原理,請考慮以下示例:

<?php
if($age < 18){
    echo 'Child'; // Display Child if age is less than 18
} else{
    echo 'Adult'; // Display Adult if age is greater than or equal to 18
}
?>

使用三元運算子可以以更緊湊的方式編寫相同的程式碼:

<?php echo ($age < 18) ? 'Child' : 'Adult'; ?>

如果條件的計算結果為 true(即 $age 小於 18),則上例中的三元運算子選擇冒號左側的值(即 Child),如果條件評估為 fale 則選擇冒號右側的值(即 Adult)。

提示: 使用三元運算子編寫的程式碼很難閱讀。但是,它提供了編寫緊湊的 if-else 語句的好方法。

PHP 7 中的空合併運算子

PHP 7 引入了一個新的空合併運算子(??),你可以將其用作速記,你需要將三元運算子與 isset() 函式結合使用。

要以更好的方式理解這一點,請考慮以下程式碼行。它獲取值 $_GET['name'] ,如果它不存在或者 NULL 返回 anonymous

<?php
$name = isset($_GET['name']) ? $_GET['name'] : 'anonymous';
?>

使用空合併運算子可以將相同的程式碼寫為:

<?php
$name = $_GET['name'] ?? 'anonymous';
?>

正如你所看到的,後面的語法更緊湊,更易於編寫。