PHP の switch 文は判定が緩やか

PHP の switch 文は怖くて使えない – れぶろぐ (2008-10-02)

[php]
function filter($value) {
switch ($value) {
case ‘abc’:
case ‘def’:
return $value;
break;
default:
return ”;
break;
}
}
[/php]

といったプログラムの場合、0を与えたら””が戻ってきてほしいものですが、

[php]
php > echo filter(0);
0
[/php]

こうなってしまうらしい。。うーむ。確かにマニュアルコメントにも怪しそうな挙動が載ってますねえ。

[php]

[/php]

The swich-statement will halt on ‘case 2’

Answer: this is 2

とか。うーむ。気をつけましょう。