ifやswitchを使って場合分けをすると、バグを埋め込みやすくなるので最近は避けがちなのですが、たまーに使いたくなるときがあります。簡単なコードを書くときとか。
phpのswitchは、緩やかな比較を行っているようで、ちょっと意図しない結果になることがあるようです。
参考:PHP 型の比較表
function switchTest($switchCase) {
switch ($switchCase) {
case 'ok':
return 'ok';
case 'ng':
return 'ng';
case true:
return 'true';
case false:
return 'false';
default:
return 'default';
}
}
var_dump(switchTest(true)); // ok
var_dump(switchTest(false)); // false
var_dump(switchTest('ng')); // ng
var_dump(switchTest(0)); // ok
まぁ、あまり無茶なswitchを使わないほうが良いなと思いました。