phpのswitch文は緩やかな比較なので、strpos関数を使うときは厳密な比較にする必要がある
(チェック文字列が1文字に含まれていると0=falseと判定されてしまう)
ダメな例
$i='example';
switch (true) {
case strpos($i, 'ex' ):
echo "iはexを含む";
break;
default:
echo "iはexを含まない";
}
// iはexを含まない
良い例
$i='example';
switch (true) {
case strpos($i, 'ex' ) !==false:
echo "iはexを含む";
break;
default:
echo "iはexを含まない";
}
// iはexを含む
参考
【PHP】特定の文字列を含むかのチェック - Qiita
PHP: PHP 型の比較表 - Manual
PHP: switch - Manual