別の状況があります。値を保持する変数( 'Weekly'、 'Monthly'、 'Quarterly'、 'Annual')があり、1〜10の値を保持する別の変数があります。
switch ($var2) {
case 1:
$var3 = 'Weekly';
break;
case 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4:
$var3 = 'Quarterly';
break;
case 5:
$var3 = 'Quarterly';
break;
// etc.
}
私のコードには多くの重複があるため、美しくありません。私が欲しいもの:
switch ($var2) {
case 1, 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4, 5:
$var3 = 'Quarterly';
break;
}
PHPでどうすればよいですか?前もって感謝します。私の英語でごめんなさい。
パフォーマンスに関して賢明な最も簡単でおそらく最もよい方法は次のとおりです。
switch ($var2) {
case 1:
case 2:
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case 4:
case 5:
$var3 = 'Quarterly';
break;
}
また、より複雑な状況でも可能です:
switch ($var2) {
case ($var2 == 1 || $var2 == 2):
$var3 = 'Weekly';
break;
case 3:
$var3 = 'Monthly';
break;
case ($var2 == 4 || $var2 == 5):
$var3 = 'Quarterly';
break;
}
このシナリオでは、$ var2を設定する必要があり、nullまたは0にすることはできません
switch ($var2) {
case 1 :
case 2 :
$var3 = 'Weekly';
break;
case 3 :
$var3 = 'Monthly';
break;
case 4 :
case 5 :
$var3 = 'Quarterly';
break;
}
Breakステートメントが見つかるまで、最初に一致したケース以降のすべてが実行されます。そのため、次のケースに進むだけで、ケースを「グループ化」できます。
スイッチはABテストにも非常に便利です。ここでは、何かの4つの異なるバージョンをランダムにテストするためのコード:
$abctest = mt_Rand(1, 1000);
switch ($abctest) {
case ($abctest < 250):
echo "A code here";
break;
case ($abctest < 500):
echo "B code here";
break;
case ($abctest < 750):
echo "C code here";
break;
default:
echo "D code here";
break;