php switch 函数,PHP丨PHP基础知识之条件语SWITCH判断「理论篇」
Switch在一些計算機語言中是保留字,其作用大多情況下是進行判斷選擇。以PHP來說,switch(開關(guān)語句)常和case break default一起使用
典型結(jié)構(gòu)
switch($controllingExpression){
case 'constantExpression1':echo 'statement1';
case 'constantExpression2':echo 'statement2';
case 'constantExpression3':echo 'statement3';
default:echo 'statement';
}
語法
PHP Switch 語句
如果您希望有選擇地執(zhí)行若干代碼塊之一,請使用 Switch 語句。
使用 Switch 語句可以避免冗長的 if..elseif..else 代碼塊。
語法
switch (expression){case label1:code to be executed if expression = label1;break;case label2:code to be executed if expression = label2;break;default:code to be executedif expression is differentfrom both label1 and label2;}
工作原理:
對表達式(通常是變量)進行一次計算
把表達式的值與結(jié)構(gòu)中 case 的值進行比較
如果存在匹配,則執(zhí)行與 case 關(guān)聯(lián)的代碼
代碼執(zhí)行后,break語句阻止代碼跳入下一個 case 中繼續(xù)執(zhí)行
如果沒有 case 為真,則使用 default 語句
下面的例子使用兩種不同方法實現(xiàn)同樣的事,一個用一系列的 if 語句,另一個用 switch 語句:
1 、switch結(jié)構(gòu)
2、 switch結(jié)構(gòu)可以用字符串
為避免錯誤,理解 switch 是怎樣執(zhí)行的非常重要。switch 語句一行接一行地執(zhí)行(實際上是語句接語句)。開始時沒有代碼被執(zhí)行。僅當一個 case 語句中的值和 switch 表達式的值匹配時 php 才開始執(zhí)行語句,直到 switch 的程序段結(jié)束或者遇到第一個 break 語句為止。如果不在 case 的語句段最后寫上 break 的話,php 將繼續(xù)執(zhí)行下一個 case 中的語句段。例如:
這里如果 $i 等于 0,php 將執(zhí)行所有的 print 語句!如果 $i 等于 1,php 將執(zhí)行后面兩條 print 語句。只有當 $i 等于 2 時,才會得到“預(yù)期”的結(jié)果――只顯示“i equals 2”。所以,別忘了 break 語句就很重要(即使在某些情況下故意想避免提供它們時)。
在 switch 語句中條件只求值一次并用來和每個 case 語句比較。在 elseif 語句中條件會再次求值。如果條件比一個簡單的比較要復(fù)雜得多或者在一個很多次的循環(huán)中,那么用 switch 語句可能會快一些。
在一個 case 中的語句也可以為空,這樣只不過將控制轉(zhuǎn)移到了下一個 case 中的語句。
一個 case 的特例是 default。它匹配了任何和其它 case 都不匹配的情況,并且應(yīng)該是最后一條 case 語句。
case 表達式可以是任何求值為簡單類型的表達式,即整型或浮點數(shù)以及字符串。不能用數(shù)組或?qū)ο?#xff0c;除非它們被解除引用成為簡單類型。
switch 支持替代語法的流程控制。更多信息見流程控制的替代語法一節(jié)。
switch語句注意事項
switch語句執(zhí)行時會從上到下根據(jù)括號中表達式的值作比較,當某個case語句中的表達式與此值相同時,就執(zhí)行這個case語句或語句序列,直到遇到break為止。 break語句是必須有的,它用來結(jié)束switch語句的執(zhí)行。如果所有case語句后面的表達式都不等于switch語句的表達式expr1的值川0執(zhí)行default后面的默認語句序列。不過,default部分是可選的。如果沒有這一部分,并遇到所有case語句都不匹配,那么,就不作任何處理而進入后續(xù)程序段的執(zhí)行。
可見,一個switch語句可以代替多個if-else語句組成的分支結(jié)構(gòu),而switch語句從思路上顯得更清晰。
使用switch語句時,要注意expr1必須是符合byte,char,short,int類型的常量表達式,而不能用浮點類型或long類型,//(也不能為一個字符串)。 (jdk7后,允許String)
1 、switch(colorNum){
2 、case 0:
3 、setBackground(colo. red);
4 、break;
5 、case 1:
6 、setBackground(color.green) ;
7 、break;
8 、default:
9 、setBackground(color.black);
10 、break;
11 、}
switch還有一個用法:
1 、switch(colorNum){
2 、case 0:
3 、case 1:
4 、setBackground(color.green) ;
5 、break;
6 、default:
7 、setBackground(color.black);
8 、break;
9 、}
文章收集與網(wǎng)絡(luò),辛苦收集轉(zhuǎn)載請備注出處一只大臉貓博客!
PHP丨PHP基礎(chǔ)知識之條件語IF判斷「理論篇」
PHP丨PHP基礎(chǔ)知識之流程控制WHILE循環(huán)「理論篇」
PHP丨PHP基礎(chǔ)知識之流程控制for循環(huán)「理論篇」
總結(jié)
以上是生活随笔為你收集整理的php switch 函数,PHP丨PHP基础知识之条件语SWITCH判断「理论篇」的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java字节码提取if语句_java –
- 下一篇: php开源项目博客,F2blog - 博