PHP って型が曖昧だったりするので、久しぶりにやると嵌ります。今回のハマリは、switch の case で文字列で比較するケース。PHP は switch 文で文字列比較ができるので便利と言えば、便利ですが、引数の型に気をつけないと予期せぬ動作をします。単純化して書くと、 $var = 0; switch ( $var) { case 'X' : print "hoge"; break; //この行を通る。 case 'Y' : print "foo"; break; default : print "bar"; break; //ここは通らない。 } $var = "0"; のように $var が文字列型だと default 節に飛ぶのですが、$var = 0 のように数値型にして渡すと、数値に変換した hoge は 0 となるので、かならず1行目を通ってしまいます。 この例だけで言