PHP 8 if 語句的新增功能

PHP 8 中的 if 語句新增了一些新功能,讓 PHP 設計師可以更輕鬆地編寫條件邏輯,包含包括模式比對、簡潔的三元運算符語法和 null 合併運算符,這些功能在做條件判斷時都相當好用。

模式比對(Pattern Matching)

PHP 8 引入了模式比對功能,可以用於在 if 語句中更簡潔地檢查條件,模式比對允許 PHP 設計師將條件表達式與模式進行比對,而不是僅比較值,這使得在處理複雜條件時更加方便。

例如,以下程式碼使用模式比對來檢查變數 $number 是否為偶數或奇數:

$number = 10;

if ($number % 2 === 0) {
  echo "偶數";
} else {
  echo "奇數";
}

可以使用模式比對來重寫此程式碼:

$number = 10;

match ($number) {
  0, 2, 4, 6, 8 => echo "偶數",
  default => echo "奇數",
};

在這個範例中,match 表達式將 $number 的值與模式進行比對,如果 $number 等於 0、2、4、6 或 8,則將 echo "偶數",否則,將 echo "奇數"。

模式比對還可以用於檢查更複雜的條件,例如字符串或陣列(Array)。

三元運算符的簡潔寫法

PHP 8 簡化了三元運算符的語法,使其更易於閱讀和編寫。

傳統的三元運算符語法如下:

$result = $condition ? $value1 : $value2;

在 PHP 8 中,您可以使用以下簡潔寫法:

$result = $condition ?: $value2;

此語法將 $value1 省略,並將其默認值設定為 null,如果 $condition 為真,則 $result 將等於 $value2;否則,$result 將等於 null。

null 合併運算符(空值合併運算子)

PHP 8 導入了 null 合併運算符(??),它可以用於更簡潔的檢查 null 值,不需要寫 if 判斷句就能直接使用。

null 合併運算符類似於三元運算符,但它只檢查 null 值,如果 null 合併運算符(??)左邊的值為 null,則返回右邊的值;否則,返回左值,來看以下這段程式碼,這裡使用 null 合併運算符(??)來取得變數 $user 的電子郵件地址,如果未設定則返回預設地址:

$user = [
  "name" => "John Doe",
];

$email = $user["email"] ?? "johndoe@example.com";

echo $email; // 輸出:johndoe@example.com

在這個範例中,null 合併運算符(??)左邊的 $user["email"] 為 null,因此只會返回(??)右邊的值,最後一行輸出 $email 將等於 "johndoe@example.com"。

總結

PHP 8 中的 if 語句新增了多項新功能,使您可以更輕鬆地編寫條件邏輯,這些新功能包括模式比對、簡潔的三元運算符語法和 null 合併運算符。

延伸閱讀

© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012