phpのswitchでは緩やかな比較が行われる
switch ($hoge) {
case 1:
//$hogeが1の場合でも"1"の場合でも実行される
break;
case '1':
//ここには到達しない
break;
}
この仕様がバグの元になることがある
厳密に比較するには、caseで比較する必要がある
switch (true) {
case $hoge === 1:
//$hogeが数値の場合のみ実行される
break;
case $hoge === '1':
//$hogeが文字列の場合のみ実行される
break;
}