この記事では主に PHP での switch ステートメントの使い方を紹介します。興味のある方はぜひ参考にしてください。
switch ステートメントは、同じ式を持つ一連の IF ステートメントに似ています。同じ変数 (または式) をさまざまな値と比較し、どの値と等しいかに応じて異なるコードを実行する必要がある状況は数多くあります。これはまさに switch ステートメントの目的です。
注: 他の言語とは異なり、 continue ステートメントは switch に適用されると、break と同様に動作することに注意してください。ループ内にスイッチがあり、外側のループの次の反復に継続したい場合は、Continue 2 を使用します。
次の 2 つの例では、2 つの異なる方法を使用して同じことを実現しています。1 つは一連の if ステートメントを使用し、もう 1 つは switch ステートメントを使用します。使用される文字列
<?php if ($i == 0) { echo "i equals 0"; } elseif ($i == 1) { echo "i equals 1"; } elseif ($i == 2) { echo "i equals 2"; } switch ($i) { case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; } ?>キーポイント: (これは私が今まで理解できなかったことです!) エラーを避けるためには、switch がどのように実行されるかを理解することが非常に重要です。 switch ステートメントは 1 行ずつ (実際にはステートメントごとに) 実行されます。最初はコードは実行されません。 case ステートメントの値が switch 式の値と一致する場合にのみ、PHP は switch ブロックの終わり (return ステートメントなど)、または最初の Break ステートメントに遭遇するまでステートメントの実行を開始します。ケースのステートメントセグメントの最後にbreakを書かないと、PHPは次のケースでもステートメントセグメントを実行し続けます。例:
<?php switch ($i) { case "apple": echo "i is apple"; break; case "bar": echo "i is bar"; break; case "cake": echo "i is cake"; break; } ?>特記事項: $i が 3 に等しい場合、PHP は echo ステートメントを実行しません。ただし、$i が 0 に等しい場合、PHP はすべての echo ステートメントを実行します。 $i が 1 の場合、PHP は次の 2 つの echo ステートメントを実行します。 $i が 2 に等しい場合にのみ、「期待される」結果が得られます。つまり、「i が 2 に等しい」だけです。したがって、break ステートメントを忘れないことが重要です (場合によっては、意図的にブレーク ステートメントの提供を避けたい場合でも)。 [効率] switch ステートメントでは、条件は 1 回だけ評価され、各 case ステートメントとの比較に使用されます。条件は elseif ステートメントで再度評価されます。条件が単純な比較よりも複雑である場合、または何度もループする場合は、switch ステートメントを使用した方が高速な場合があります。 ケース内のステートメントを空にすることもできます。これは、次のケースのステートメントに制御を移すだけです。
<?php switch ($i) { case 0: echo "i equals 0"; case 1: echo "i equals 1"; case 2: echo "i equals 2"; } ?>ケースの特別なケースがデフォルトです。他のどの大文字と小文字も一致しないあらゆる大文字と小文字が一致します。例:
<?php switch ($i) { case 0: case 1: case 2: echo "i is less than 3 but not negative"; break; case 3: echo "i is 3"; } ?>case 式は、単純な型 (つまり、文字列だけでなく整数や浮動小数点数) に評価される任意の式にすることができます。配列またはオブジェクトは、単純型に逆参照されない限り使用できません。 【実践的な戦闘】 上記の知識ポイントに基づいて、次のような関数を作成します: 容量値が実際に表すバイト数を計算します
<?php switch ($i) { case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; default: echo "i is not equal to 0, 1 or 2"; } ?>特記事項: $val = 400M の場合、ケース 'm' がヒットし、 $val * = 1024; は実行されますが、ブレーク言語がないため、case 'k' が引き続きヒットし、その下の $val *= 1024; ステートメントが実行されるため、全体としては同等です。 400 * 1024 * 1024 を実行します。 要約: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。 関連する推奨事項:
PHP の一般的なファイル操作関数と分析例
ファイルのサフィックス名を取得するメソッドの PHP 実装
以上がPHP での switch ステートメントの使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。