caseでorを使ってみたのですがうまくいきません

2021年1月8日
ユーザー

先生、こんにちは。

case 'blue':
case 'green':
echo 'GO!' . PHP_EOL;
break;

と動画ではしていたので、前に解説していた論理演算子の or が使えるのではと思い、

case 'blue' or 'green':
echo 'GO!' . PHP_EOL;
break;

としてみました。
$signalに'green'を代入した時は

GO!

と出力されたので思った通りに動作したかと思ったのですが、その後続けていくと$signalを'pink'としても

GO!

出力されてしまいました。どうやらここで or を使ってしまうと$signalに他の条件以外の何を代入してもGO!が出力されてしまうようです。
どういった挙動で、何を代入してもGO!が出力されてしまうのでしょうか?

よろしくお願いいたします。

この回答を見るにはプレミアムサービスへの登録が必要です

プレミアムサービスとは?