switch 是很好用的多條件判斷敘述,跟 if...elseif...elseif... 結構相同。switch 語法為:
1.
switch (EXPRESSION) { case 1: statement1; // 當 EXPRESSION 的值為 1 (integer) 時,則執行這裡 statement2; // 的敘述… ... break; case 2: statement10; // 當 EXPRESSION 的值為 2 (integer) 時,則執行這裡 statement20; //的敘述… … default: // 當 EXPRESSION 的值都未出現在以上的 case 時, // 則執行這裡的敘述。 statement1; statement2; ... break; }
2.
switch (EXPRESSION) : case 1: statements; break; case 2: statements; break; default: statements; break; endswitch;
第 2 種格式為第一種格式的冒號寫法。
請看底下的範例:
<?php switch ($i) { case 'A': $grade = 90; break; case 'b': case 'B': $grade = 80; break; default: $grade = 60; break; } ?>
這裡直接用一個表來觀察範例的執行結果:
$i 的值 最後 $grade 的值 A 90 a 60 B 80 b 80
switch 的用法簡單,唯一要注意的是 break 的使用。假如在該 case 敘述片斷裡的最後一行敘述後沒有加上 break 的話,程式就會繼續往下執行而不會跳出,所以會執行到其它 case 的敘述,但是這種特性也常被拿來當成小技巧使用,例如:
<?php higher_a = higher_b = higher_c = FALSE;
switch ($grade) { case 'A': higher_a = TRUE; case 'B': higher_b = TRUE; case 'C': higher_c = TRUE; break; } ?>
當 $grade 為 B 時,則由 higher_b = TRUE 敘述開始執行,因此結果為:
higher_a = FALSE; higher_b = TRUE; higher_c = TRUE;
如果 $grade = C,則最後結果變成:
higher_a = FALSE; higher_b = FALSE; higher_c = TRUE;
--jollen