在PHP中,default關(guān)鍵字需要和switch語(yǔ)句一起使用,用于基于不同的條件來(lái)執(zhí)行不同的動(dòng)作。switch語(yǔ)句是一個(gè)條件選擇語(yǔ)句,首先會(huì)找到滿(mǎn)足條件的case值做為執(zhí)行后面的程序入口;若所有case都不滿(mǎn)足,則找default入口,若未找到則退出整個(gè)switch語(yǔ)句。default是一個(gè)備用入口,但為了進(jìn)行錯(cuò)誤或邏輯檢查,應(yīng)該在switch語(yǔ)句中加入default分支。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8版、DELL G3電腦
在PHP中,default關(guān)鍵字需要和switch語(yǔ)句一起使用。
switch語(yǔ)句可以用于基于不同的條件來(lái)執(zhí)行不同的動(dòng)作。switch語(yǔ)句是一個(gè)條件選擇語(yǔ)句,首先會(huì)找到滿(mǎn)足條件的case值做為執(zhí)行后面的程序入口;若所有的case都不滿(mǎn)足,則找default入口,若未找到則退出整個(gè)switch語(yǔ)句;所以default只是一個(gè)備用的入口,有沒(méi)有都無(wú)所謂。但是為了進(jìn)行錯(cuò)誤檢查或邏輯檢查,還是應(yīng)該在switch語(yǔ)句中加入default分支。
switch 語(yǔ)句由一個(gè)表達(dá)式和多個(gè) case 標(biāo)簽組成,case 標(biāo)簽后緊跟一個(gè)代碼塊,case 標(biāo)簽作為這個(gè)代碼塊的標(biāo)識(shí)。switch 語(yǔ)句的語(yǔ)法格式如下:
switch(表達(dá)式){ case 值 1: 語(yǔ)句塊 1; break; case 值 2: 語(yǔ)句塊 2; break; ... ... case 值 n: 語(yǔ)句塊 n; break; default: 語(yǔ)句塊 n+1; }
switch 語(yǔ)句會(huì)根據(jù)表達(dá)式的值,依次與 case 中的值進(jìn)行比較,如果不相等,繼續(xù)查找下一個(gè) case;如果相等,就會(huì)執(zhí)行對(duì)應(yīng)的語(yǔ)句,直到 switch 語(yǔ)句結(jié)束或遇到 break 為止。
一般來(lái)說(shuō),switch 語(yǔ)句最終都有一個(gè)默認(rèn)值 default,如果在前面的 case 中沒(méi)有找到相符的條件,則執(zhí)行默認(rèn)語(yǔ)句,和 else 語(yǔ)句類(lèi)似。
switch 語(yǔ)句的執(zhí)行流程如下圖所示:
示例:使用 date() 函數(shù)獲取當(dāng)前星期的英文縮寫(xiě),根據(jù)縮寫(xiě)打印今天是星期幾
<?php header("content-type:text/html;charset=utf-8"); $week = date('D'); switch($week) { case 'Mon' : echo '星期一'; break; case 'Tue' : echo '星期二'; break; case 'Wed' : echo '星期三'; break; case 'Thu' : echo '星期四'; break; case 'Fri' : echo '星期五'; break; case 'Sat' : echo '星期六'; break; case 'Sun' : echo '星期日'; break; } ?>
擴(kuò)展知識(shí):
在使用 switch 語(yǔ)句時(shí)應(yīng)該注意以下幾點(diǎn):
-
和 if 語(yǔ)句不同的是,switch 語(yǔ)句后面表達(dá)式的數(shù)據(jù)類(lèi)型只能是整型或字符串,不能是 bool 型。通常這個(gè)表達(dá)式是一個(gè)變量名稱(chēng),雖然 PHP 是弱類(lèi)型語(yǔ)言,在 switch 后面表達(dá)式的變量可以是任意類(lèi)型數(shù)據(jù),但為了保證匹配執(zhí)行的準(zhǔn)確性,最好只使用整型或字符串中的一種類(lèi)型。
-
和 if 語(yǔ)句不同的是,switch 語(yǔ)句后面的花括號(hào)是必須有的。
-
case 語(yǔ)句的個(gè)數(shù)沒(méi)有規(guī)定,可以無(wú)限增加。但 case 標(biāo)簽和 case 標(biāo)簽后面的值之間應(yīng)該有一個(gè)空格,值后面必須有一個(gè)冒號(hào),這是語(yǔ)法的一部分。
-
switch 匹配完成以后,將依次逐條執(zhí)行匹配的分支模塊中的語(yǔ)句,直到 switch 結(jié)構(gòu)結(jié)束或者遇到了 break 語(yǔ)句才停止執(zhí)行。所以,如果一個(gè)分支語(yǔ)句的后面沒(méi)有寫(xiě)上 break 語(yǔ)句,程序?qū)?huì)繼續(xù)執(zhí)行下一個(gè)分支語(yǔ)句的內(nèi)容。
-
與 if 語(yǔ)句中的 else 類(lèi)似,switch 語(yǔ)句中 default 標(biāo)簽直接在后面加上一個(gè)冒號(hào),看似沒(méi)有條件,其實(shí)是有條件的,條件就是“表達(dá)式”的值不能與前面任何一個(gè) case 標(biāo)簽后的值相等,這時(shí)才執(zhí)行 default 分支中的語(yǔ)句。default 標(biāo)簽和 if 中的 else 子句一樣,它不是 switch 語(yǔ)句中必需的,可以省略。
推薦學(xué)習(xí):《PHP視頻教程》