PHP Switch 語(yǔ)句
switch 語(yǔ)句用于根據(jù)多個(gè)不同條件執(zhí)行不同動(dòng)作。
我們前面學(xué)過(guò)if......else 語(yǔ)句判斷條件,但是效率低,還有其他更好的方式嗎?我們可以使用到一種方式就是:switch...case語(yǔ)法。
switch...case的語(yǔ)法結(jié)構(gòu)如下:
switch (expr)
{
??? case expr1:
??????? statement;
??????? break;?
??? case expr2:
??????? statement;
??????? break;?
??? ……
??? default:
??????? statement;
}?
switch 語(yǔ)句類(lèi)似于具有同一個(gè)表達(dá)式的一系列 if 語(yǔ)句
每個(gè)case會(huì)依次判斷,expr與expr1..n是否相等,如果相等則執(zhí)行對(duì)應(yīng)的statement,如果最后有break,則執(zhí)行完成后跳出switch語(yǔ)句
default是在所有case都無(wú)法滿足的情況下默認(rèn)執(zhí)行的操作
注意事項(xiàng):
1.不要在case 后面寫(xiě)成分號(hào),后面是冒號(hào):
2.不要在case后面寫(xiě)判斷區(qū)間,如($foo > 20 或者 $foo == 30)
3.switch里面在變量最好是 整型,字符串,因?yàn)椴紶柵袛喔m合if...else..
4.如果把每個(gè)case里的break去掉,那么每個(gè)case里的代碼塊會(huì)依次都執(zhí)行到
5.switch語(yǔ)句可以不寫(xiě)default,但是作為好的習(xí)慣,建議保留default語(yǔ)句
實(shí)例
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $dir='north'; switch ($dir) { case 'west': echo '西'; break; case 'east': echo '東'; break; case 'north': echo '北'; break; case 'sourth': echo '南'; break; default: echo '未知'; break; }
?實(shí)例
我們來(lái)寫(xiě)一個(gè)簡(jiǎn)單的星期判斷:
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 //得到今天是星期幾的英文簡(jiǎn)稱 $day = date('D'); switch($day){ //拿學(xué)校舉例,我們讓星期一、二、三是校長(zhǎng)日 case 'Mon': case 'Tue': case 'Wed': echo '校長(zhǎng)日'; break; case 'Thu': echo '星期四'; break; case 'Fri': echo '星期五'; break; default: echo '周末,周末過(guò)的比周一到周五還要累<br />'; }
看看今天星期幾吧。