English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、switchを使用する方法を学びます。-case文を使用してPHP内で異なる値を持つ表現をテストまたは評価します。
switch-case文はif-elseif-else文の代替方法、ほぼ同じ操作を実行します。switch-case文は一連の値をテストする変数に対して、一致する項を見つけ次第、その項に関連するコードブロックを実行します。
switch(n){ case label1: // nがlabelと一致する場合に実行するコード1 break; case label2: // nがlabelと一致する場合に実行するコード2 break; ... default: // nがすべてのタグに一致しない場合に実行するコード }
以下の例を見てください。この例では、毎日異なるメッセージが表示されます。
<?php $today = date("D"); switch($today){ case "Mon": echo "今日は月曜日です。あなたの家を掃除してください。"; break; case "Tue": echo "今日は火曜日です。食料を買い求めてください。"; break; case "Wed": echo "今日は水曜日です。医者に診察してください。"; break; case "Thu": echo "今日は木曜日です。あなたの車を修理してください。"; break; case "Fri": echo "今日は金曜日です。今夜パーティーを開いてください。"; break; case "Sat": echo "今日は土曜日です。映画を見る時間です。"; break; case "Sun": echo "今日は日曜日です。休憩してください。"; break; default: echo "今日は情報が利用できません。"; break; } ?>テストして‹/›
switch-case文とif-elseif-else文の重要な違いは以下の通りです。switch文は行ごとに実行します(つまり各文ごとに)、PHPが条件式がtrueのcase文を見つけたら、そのcase文に関連するコードを実行するだけでなく、その後のすべてのcase文も実行し、その文が終わるまで続きます。switchのブロックは自動的に切り替わります。
このような状況を防ぐために、各caseブロックの最後にbreak文を追加してください。break文はPHPが最初の実際のcaseに関連するコードを実行したら、switchから脱出する指示をします。-case文脈のブロック。