詳解php中switch你可能不知道的事
阿新 • • 發佈:2019-02-10
switch的常規用法是傳遞一個引數然後逐一跟case對比;
switch (variable) {
case 'value':
// code...
break;
default:
// code...
break;
}
在分支比較多的時候;switch要比if else if好用;比如;
if('value'){ // code... }else if('value2'){ // code... }else if('value3'){ // code... }else if('value4' || 'value5'){ // code... }
用switch來寫的話就是這樣的,可以傳遞true;每個case就相當於一個else if;
switch ('value') {
case 'value1':
// code...
break;
case 'value2':
// code...
break;
case 'value3':
// code...
break;
case 'value4':
case 'value5':
// code...
break;
}
但是需要注意的是switch是鬆比較;也就是說如下這段程式碼每個case都能滿足;
switch (123) {
case 'string':
// code...
break;
case 'string2':
// code...
break;
case 'string3':
// code...
break;
}
解決這個問題的辦法就是在傳參的時候轉為字串string型;
switch (strval(123)) { case 'string': // code... break; case 'string2': // code... break; case 'string3': // code... break; }