PHP8.0 match函數

`match` 表達式是 PHP 8.0 引入的一個新的控制結構,它提供了一種簡潔且更強大的方式來進行條件匹配。與 `switch` 語句相比,`match` 表達式具有以下優勢:

  • 返回值match 是一個表達式,它會返回一個值。
  • 嚴格比較match 使用嚴格比較(===),而 switch 使用寬松比較(==)。
  • 單行語法:每個條件都必須在同一行內完成。
  • 默認值:可以使用 _ 作為默認匹配情況。

基本語法

$result = match ($value) {1 => 'One',2 => 'Two',3 => 'Three',default => 'Other',
};

使用示例

1、基本示例
$value = 2;$result = match ($value) {1 => 'One',2 => 'Two',3 => 'Three',default => 'Other',
};echo $result; // 輸出 'Two'
2、使用多個條件
$value = 2;$result = match ($value) {1, 2, 3 => 'One, Two, or Three',4 => 'Four',default => 'Other',
};echo $result; // 輸出 'One, Two, or Three'
3、嚴格比較
$value = '1';$result = match ($value) {1 => 'Integer One','1' => 'String One',default => 'Other',
};echo $result; // 輸出 'String One'
4、處理異常
$value = 10;$result = match ($value) {1, 2, 3 => 'One, Two, or Three',4 => 'Four',default => throw new \Exception('Unexpected value'),
};
5、使用`_`作為默認值
$value = 5;$result = match ($value) {1 => 'One',2 => 'Two',_ => 'Default value',
};echo $result; // 輸出 'Default value'

總結:

`match` 表達式提供了一種簡潔且類型安全的方式來進行條件匹配。在許多情況下,它可以替代傳統的 `switch` 語句,并且由于其嚴格比較特性和表達式的性質,代碼更加可靠和易于維護。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17964.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17964.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17964.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MyBatis系統學習篇 - MyBatis逆向工程

MyBatis的逆向工程是指根據數據庫表結構自動生成對應的Java實體類、Mapper接口和XML映射文件的過程。逆向工程可以幫助開發人員快速生成與數據庫表對應的代碼,減少手動編寫重復代碼的工作量。 我們在MyBatis中通過逆向工具來幫我簡化繁瑣的搭建框架,減少…

iOS推送證書過期處理

蘋果推送證書的有效期都是一年,將要過期的時候,蘋果官方會發郵件提醒。 一、過期 在電腦上找到并打開其它->鑰匙串訪問; 我的證書可以看到各個App的推送證書,如果過期了,顯示紅色X 二、重新創建 1、登陸apple開…

如何解決三層單點故障

我給他整成下面這樣行不行呀 一個pc的默認網關只有一個,pc1配置的是1.1,那么路由壞了,他還是給1.1發送數據,冗余的那個也沒用上呀 用VRRP(虛擬路由冗余協議)解決以上問題 那光把這個R1和R2虛擬成一個R3&…

android usb轉串口

Android USB通信(host轉串口)_android usb 實現串口通信-CSDN博客

Windows內核函數 - 文件的讀操作

DDK提供了文件讀操作的內核函數,其函數聲明如下: NTSTATUS ZwWriteFile(IN HANDLE FileHandle,IN HANDLE Event,IN PIO_APC_ROUTINE ApcRoutine,IN PVOID ApcContext,out PIO_STATUS_BLOCK IoStatusBlock,IN PVOID Buffer,IN ULONG Length,IN PLARGE_IN…

windows 執行node報錯 800A1391

在項目下執行node -v的時候,拋了這個錯誤,一開始沒發現有啥問題 現在一看,這個報錯里的node怎么是個文件... 出現這個問題,是因為項目下,有個同名的文件叫node.js,搞得windows一時不知道是想打開node.js文…

代碼隨想錄算法訓練營Day51 | 300.最長遞增子序列 674. 最長連續遞增序列 718. 最長重復子數組

代碼隨想錄算法訓練營Day51 | 300.最長遞增子序列 674. 最長連續遞增序列 718. 最長重復子數組 LeetCode 300.最長遞增子序列 題目鏈接:LeetCode 300.最長遞增子序列 思路: 選取最長子序列,并收集 class Solution { public:int lengthOfL…

通過提示工程將化學知識整合到大型語言模型中

在當今快速發展的人工智能領域,大型語言模型(LLMs)正成為科學研究的新興工具。這些模型以其卓越的語言處理能力和零樣本推理而聞名,為解決傳統科學問題提供了全新的途徑。然而,LLMs在特定科學領域的應用面臨挑戰&#…

第四十六天 | 279.完全平方數 139.單詞拆分

題目:279.完全平方數 本題比較簡單,幾天沒做背包但是這道題很快ac了 嘗試解答: 題目類型:給定一個背包容量,求裝滿背包的最少物品數,且每個物品可以放多次,完全背包 1.dp[j]數組含義&#xff…

如何選擇適合自己需求的揚州獨立服務器方案?

在互聯網時代,獨立服務器是網絡建設的重要組成部分。選擇適合自己需求的揚州獨立服務器方案至關重要。下面,我們將介紹如何選擇合適的揚州獨立服務器,并推薦萊卡云(Lcayun)服務器商。 明確需求 要明確自己的需求是什…

大型央企國企信創化與數字化轉型規劃實施方案(71頁PPT)

方案介紹: 隨著全球信息技術的迅猛發展,數字化轉型已成為企業提升競爭力、實現可持續發展的必經之路。作為國家經濟的重要支柱,大型央企國企在信創化與數字化轉型方面承載著重要的責任和使命。本方案旨在通過系統性的規劃和實施,…

rpc理解

rpc 遠程過程調用 rpc與http的區別 1.性能高 2.使用復雜 3.可擴展性高 4 跨語言支持 5.可以使用服務發現,負載均衡,熔斷降級 rpc遠程調用,必須傳輸數據,需要序列化。 序列化有多種方式: jdk原生序列化&#xff0c…

Discourse 使用 DiscourseConnect 來進行用戶數據同步

我們都知道 Discourse 的用戶管理和設置都高度依賴電子郵件。 如果 Discourse 沒有設置電子郵件 SMTP 的話,作為管理員是沒有辦法對用戶郵箱進行修改并且通過驗證的。 可以采取的辦法是通過 Discourse 的 DiscourseConnect 來進行用戶同步。 根據官方的說法&…

C++語法|虛函數與多態詳細講解(四)|哪些函數不能實現成虛函數和虛析構函數的理解

系列匯總講解,請移步: C語法|虛函數與多態詳細講解系列(包含多重繼承內容) 文章目錄 哪些函數不能成為虛函數虛析構函數什么時候把基類的析構函數必須是線程虛函數 哪些函數不能成為虛函數 要回答這個問題&#xff0c…

如何取消公眾號的在線客服綁定授權

1,功能設置 2,公眾號設置 3,查看詳情,取消

開發遠程遙控情趣玩具軟件,提供現成程序源碼應具備哪些基礎功能

以“東莞夢情智能”為參考,其提供的現成情趣玩具遙控軟件程序源碼,所具備哪些基礎功能,看看它們如何讓情趣玩具變得更加豐富多彩。 一、設備連接 設備連接是情趣玩具遙控軟件的基礎功能之一。“東莞夢情智能”的現成源碼支持多種連接方式&am…

leetcode題目42

接雨水 困難 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之后能接多少雨水 示例 1: 輸入:height [0,1,0,2,1,0,1,3,2,1,2,1] 輸出:6 解釋:上面是由數組 [0,1,0,2,1,0,1…

mysql中text,longtext,mediumtext區別

文章目錄 一.概覽二、字節限制不同三、I/O 不同四、行遷移不同 一.概覽 在 MySQL 中,text、mediumtext 和 longtext 都是用來存儲大量文本數據的數據類型。 TEXT:TEXT 數據類型可以用來存儲最大長度為 65,535(2^16-1)個字符的文本數據。如果存儲的數據…

開源VS閉源:誰更能推動AI技術的普及與發展?

一、引言 在人工智能(AI)技術的浪潮中,開源與閉源兩種模式一直并存,并各自在推動AI技術普及與發展上發揮著重要作用。然而,關于哪種模式更能有效地推動AI技術的普及與發展,一直存在著激烈的討論。本文將深…

Bitmap 的基本原理

Bitmap 是一種用于表示數據的高效方法,特別適合在需要表示大量布爾值(true 或 false)的情況下使用。它的原理是使用二進制位來表示每一個布爾值,節省了存儲空間和操作時間。 Bitmap 的基本原理 想象一下,你有一個很長…