スイッチの基本的な使い方さえマスターしていないので「上級」とだけ呼んでいますが、これからお話しするのは基本的な使い方です!
switch ステートメントは、同じ式を持つ一連の IF ステートメントに似ています。同じ変数 (または式) をさまざまな値と比較し、どの値と等しいかに応じて異なるコードを実行する必要がある状況は数多くあります。これはまさに switch ステートメントの目的です。
注: 他の言語とは異なり、 continue ステートメントは switch に適用されると、break と同様に動作することに注意してください。ループ内にスイッチがあり、外側のループの次の反復に継続したい場合は、Continue 2 を使用します。
次の 2 つの例では、2 つの異なる方法を使用して同じことを実現します。1 つは一連の if ステートメントを使用し、もう 1 つは switch ステートメントを使用します。
例 #1 スイッチ構造
{
ケース0:
echo "i = 0";
休憩;
ケース1:
echo "i = 1";
休憩;
ケース 2:
echo "i = 2";
休憩;
}
?>
エラーを回避するには、switch がどのように実行されるかを理解することが重要です。 switch ステートメントは 1 行ずつ (実際にはステートメントごとに) 実行されます。最初はコードは実行されません。 case ステートメントの値が switch 式の値と一致する場合にのみ、PHP は switch ブロックの終わり (return ステートメントなど)、または最初の Break ステートメントに遭遇するまでステートメントの実行を開始します。ケースのステートメントセグメントの最後にbreakを書かないと、PHPは次のケースでもステートメントセグメントを実行し続けます。例:
[効率] switch ステートメント内の条件は 1 回だけ評価され、各 case ステートメントとの比較に使用されます。条件は elseif ステートメントで再度評価されます。条件が単純な比較よりも複雑である場合、または何度もループする場合は、switch ステートメントを使用した方が高速な場合があります。
ケース内のステートメントを空にすることもできます。これは、制御を次のケースのステートメントに移すだけです。
case 式は、単純な型 (つまり、文字列だけでなく整数や浮動小数点数) に評価される任意の式にすることができます。配列またはオブジェクトは、単純型に逆参照されない限り使用できません。
[実践的な戦闘] 上記の知識ポイントに基づいて、次のような関数を作成します: 容量値が実際に表すバイト数を計算します
$val を返します;
}
$memorylimit = ini_get('memory_limit');
echo $memorylimit, '
';
echo return_bytes($memorylimit);
出力:
特記事項: $val = 400M の場合、case 'm' がヒットし、その下の $val *= 1024; が実行されますが、ブレーク言語がないため、case 'k' がヒットし続け、その下の $ val *= 1024; ステートメントは、通常、400 * 1024 * 1024 を実行するのと同じです。
セッションを保存し、別のページでセッションを取り出します。
switch ($a) {
case "1" :
echo "A" ;
if(!isset($_SESSION)){
session_start();
}
$_SESSION['a']='A';
break;
別のページ:
if(!isset($_SESSION)){
session_start();
}
$a=$_SESSION['a'];
var iMonth=5;
var四半期=""
switch(iMonth){
ケース1:;
ケース2:;
ケース3:;
四半期="春日";
休憩;
ケース4:;
ケース5:;
ケース 6:;
四半期 = "xiaji";
休憩;
ケース 7:;
ケース 8:;
ケース 9:;
四半期 "qiiji";
休憩;
ケース 10:;
ケース11:;
ケース 12:;
四半期 = "ドンジ";
休憩;
}
document.write(四半期)