case ステートメントについてアドバイスをお願いします。
$a = '*';
switch($a)
{
case 1: echo ' (int)one';
case 0: echo ' (int) zero';
case '0': echo ' (string)zero';
case '*': echo ' (string)star';
case true: echo ' (bool)true ';
case false: echo ' (bool)false';
}
なぜ上記の段落は //(int)zero (string)zero (string)star (bool)true (bool) を出力するのでしょうか。 false
出力の代わりに //(string)star (bool)true (bool)false
------解決策------------- --- ----
各文の後にbreakを書いていません。これは次のケースと一致し続けます。
------解決策---------
このケースは弱い型の比較であるため、
文字列と数値を比較する場合、文字列は数値
に強制変換され、強制後の文字列は 0
となるため、0