switch文って普通は変数を使うと思うのですが
switch($hoge) { case 1: case 2: case 3: default: break; }
みたいに。
でも、switchに変数を入れずにtrueとかを入れて、
caseでif文っぽい条件を入れることも出来る。
<?php function hoge($a) { $length = strlen($a); $retval = null; switch(true) { case (! is_string($a)): $retval = "文字列じゃない"; break; case ($length < 10): $retval = "10文字以下"; break; case ($length > 10): $retval = "10文字以上"; break; } return $retval; } print_r(hoge('hahaha'));
if-elseより可読性は向上するけども、ジャンプせずに1コ1コ徘徊していることに注意するべし。
追記: if-else も上から順番に評価される。C言語のswitchはジャンプする。