Contents
- UNIX
- Windows
- サーバ
- プログラミング言語
- データベース
- プロトコル
- サービス
- オープンソース
- 規格・技術
- アプリケーション
- PC
- DEVICE
- その他(未分類)
お問合せ: メールフォーム
switch の case 文の比較は型を考慮しません。
比較演算子 == と同様の挙動です。
下記サンプルコードをご覧ください。
<?php function hoge($v) { switch ($v) { case '1': // 文字列の1 $ret = 'string: 1'; break; case 1: // 数値の1 $ret = 'integer: 1'; break; } return $ret; } $v = 1; var_dump(hoge($v)); $v = '1'; var_dump(hoge($v));
結果
string(9) "string: 1" string(9) "string: 1"
以下のように書くことで、switch の case 文でも厳密な型比較をすることが可能です。
<?php function hoge($v) { switch (true) { case $v === '1': $ret = 'string: 1'; break; case $v === 1: $ret = 'integer: 1'; break; case is_array($v): $ret = 'array'; break; default: $ret = 'default'; } return $ret; } var_dump(hoge('1')); var_dump(hoge(1)); var_dump(hoge(array())); var_dump(hoge(false));
結果
string(9) "string: 1" string(10) "integer: 1" string(5) "array" string(7) "default"