
- PHP 教程
- PHP - 首頁
- PHP - 簡介
- PHP - 安裝
- PHP - 歷史
- PHP - 特性
- PHP - 語法
- PHP - Hello World
- PHP - 註釋
- PHP - 變數
- PHP - echo/print
- PHP - var_dump
- PHP - $ 和 $$ 變數
- PHP - 常量
- PHP - 魔術常量
- PHP - 資料型別
- PHP - 型別轉換
- PHP - 型別混用
- PHP - 字串
- PHP - 布林值
- PHP - 整數
- PHP - 檔案與 I/O
- PHP - 數學函式
- PHP - Heredoc 和 Nowdoc
- PHP - 複合型別
- PHP - 檔案包含
- PHP - 日期與時間
- PHP - 標量型別宣告
- PHP - 返回型別宣告
- PHP 運算子
- PHP - 運算子
- PHP - 算術運算子
- PHP - 比較運算子
- PHP - 邏輯運算子
- PHP - 賦值運算子
- PHP - 字串運算子
- PHP - 陣列運算子
- PHP - 條件運算子
- PHP - 展開運算子
- PHP - 空值合併運算子
- PHP - 比較運算子(太空船運算子)
- PHP 控制語句
- PHP - 決策
- PHP - if…else 語句
- PHP - switch 語句
- PHP - 迴圈型別
- PHP - for 迴圈
- PHP - foreach 迴圈
- PHP - while 迴圈
- PHP - do…while 迴圈
- PHP - break 語句
- PHP - continue 語句
- PHP 函式
- PHP - 函式
- PHP - 函式引數
- PHP - 按值傳遞
- PHP - 按引用傳遞
- PHP - 預設引數
- PHP - 具名引數
- PHP - 可變引數
- PHP - 返回值
- PHP - 傳遞函式
- PHP - 遞迴函式
- PHP - 型別提示
- PHP - 變數作用域
- PHP - 嚴格型別
- PHP - 匿名函式
- PHP - 箭頭函式
- PHP - 可變函式
- PHP - 區域性變數
- PHP - 全域性變數
- PHP 超全域性變數
- PHP - 超全域性變數
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 檔案處理
- PHP - 檔案處理
- PHP - 開啟檔案
- PHP - 讀取檔案
- PHP - 寫入檔案
- PHP - 檔案是否存在
- PHP - 下載檔案
- PHP - 複製檔案
- PHP - 追加檔案
- PHP - 刪除檔案
- PHP - 處理 CSV 檔案
- PHP - 檔案許可權
- PHP - 建立目錄
- PHP - 列出檔案
- 面向物件的 PHP
- PHP - 面向物件程式設計
- PHP - 類和物件
- PHP - 建構函式和解構函式
- PHP - 訪問修飾符
- PHP - 繼承
- PHP - 類常量
- PHP - 抽象類
- PHP - 介面
- PHP - 特性
- PHP - 靜態方法
- PHP - 靜態屬性
- PHP - 名稱空間
- PHP - 物件迭代
- PHP - 封裝
- PHP - final 關鍵字
- PHP - 過載
- PHP - 克隆物件
- PHP - 匿名類
- PHP Web 開發
- PHP - Web 概念
- PHP - 表單處理
- PHP - 表單驗證
- PHP - 表單郵件/URL
- PHP - 完整表單
- PHP - 檔案包含
- PHP - GET 和 POST
- PHP - 檔案上傳
- PHP - Cookie
- PHP - Session
- PHP - Session 選項
- PHP - 傳送郵件
- PHP - 淨化輸入
- PHP - Post-Redirect-Get (PRG)
- PHP - 快閃記憶體訊息
- PHP 高階
- PHP - MySQL
- PHP.INI 檔案配置
- PHP - 陣列解構
- PHP - 編碼規範
- PHP - 正則表示式
- PHP - 錯誤處理
- PHP - try…catch
- PHP - 除錯 Bug
- PHP - 針對 C 開發人員
- PHP - 針對 PERL 開發人員
- PHP - 框架
- PHP - Core PHP vs. 框架
- PHP - 設計模式
- PHP - 過濾器
- PHP - JSON
- PHP - 異常
- PHP - 特殊型別
- PHP - 雜湊
- PHP - 加密
- PHP - is_null() 函式
- PHP - 系統呼叫
- PHP - HTTP 身份驗證
- PHP - 交換變數
- PHP - Closure::call()
- PHP - 過濾後的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 預期
- PHP - use 語句
- PHP - 整數除法
- PHP - 已棄用的特性
- PHP - 已移除的擴充套件和 SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 程序
- PHP - PDO 擴充套件
- PHP - 內建函式
- PHP 有用資源
- PHP - 速查表
- PHP - 問答
- PHP - 快速指南
- PHP - 線上編譯器
- PHP - 有用資源
- PHP - 討論
PHP - switch 語句
PHP 中的 switch 語句可以作為一系列針對相同表示式的 if…else 語句的替代方案。假設你需要將表示式或變數與許多不同的值進行比較,並根據它等於哪個值來執行不同的程式碼段。在這種情況下,你會使用多個 if…elseif…else 結構。
但是,這種結構可能會使程式碼變得相當混亂且難以理解。為了簡化此類程式碼,你可以使用 PHP 中的 switch case 結構,它提供了一種更緊湊的替代方案,以避免冗長的 if..elseif..else 程式碼塊。
下面的 PHP 指令碼使用了 if elseif 語句:
if ($x == 0) { echo "x equals 0"; } elseif ($x == 1) { echo "i equals 1"; } elseif ($x == 2) { echo "x equals 2"; }
你可以使用 switch case 語句獲得相同的結果,如下所示:
switch ($x) { case 0: echo "x equals 0"; break; case 1: echo "x equals 1"; break; case 2: echo "x equals 2"; break; }
switch 語句後跟一個表示式,該表示式會依次與每個 case 子句中的值進行比較。如果發現表示式與任何 case 匹配,則執行相應的語句塊。
switch 語句逐行執行花括號內的語句。
如果找到一個 case 語句,其表示式的計算結果與 switch 表示式的值匹配,則 PHP 開始執行語句,直到 switch 塊結束,或者第一次遇到 break 語句。
如果你沒有在 case 的語句列表末尾編寫 break 語句,PHP 將繼續執行下一個 case 的語句。
示例
嘗試透過刪除 break 語句來執行上面的程式碼。如果 x 的值為 0,你會發現輸出包括 "x equals 1" 和 "x equals 2" 行。
<?php $x=0; switch ($x) { case 0: echo "x equals 0 \n"; case 1: echo "x equals 1 \n"; case 2: echo "x equals 2"; } ?>
它將產生以下 輸出:
x equals 0 x equals 1 x equals 2
因此,務必確保每個 case 塊都以 break 語句結束。
switch 中的 default case
一個特殊的情況是 default case。此 case 匹配任何其他 case 未匹配的內容。使用 default 是可選的,但如果使用,它必須是花括號內的最後一個 case。
你可以組合多個 case 來模擬多個用 或 運算子組合的邏輯表示式。
<?php $x=10; switch ($x) { case 0: case 1: case 2: echo "x between 0 and 2 \n"; break; default: echo "x is less than 0 or greater than 2"; } ?>
要比較的值在 case 子句中給出。值可以是數字、字串,甚至是函式。但是,你不能在 case 子句中使用比較運算子(<,>,== 或 !=)。
你可以選擇在 case 子句中使用分號而不是冒號。如果沒有找到匹配的 case,並且也沒有 default 分支,則不會執行任何程式碼,就像沒有 if 語句為真一樣。
switch-endswitch 語句
PHP 允許使用替代語法,用 switch-endswitch 語句來界定 switch 結構。以下 switch case 版本是可以接受的。
<?php $x=0; switch ($x) : case 0: echo "x equals 0"; break; case 1: echo "x equals 1 \n"; break; case 2: echo "x equals 2 \n"; break; default: echo "None of the above"; endswitch ?>
在 Switch…Case 中使用 Break 語句
顯然,你不需要編寫 break 來終止 default case,因為它在 switch 結構中是最後一個 case。
示例
看看下面的例子:
<?php $d = date("D"); switch ($d){ case "Mon": echo "Today is Monday"; break; case "Tue": echo "Today is Tuesday"; break; case "Wed": echo "Today is Wednesday"; break; case "Thu": echo "Today is Thursday"; break; case "Fri": echo "Today is Friday"; break; case "Sat": echo "Today is Saturday"; break; case "Sun": echo "Today is Sunday"; break; default: echo "Wonder which day is this ?"; } ?>
它將產生以下 輸出:
Today is Monday