1
switch($app_id){
case (
$app_id == 1 ||
$app_id == 2
):
//do something
break;
case 3:
//do something else
break;
}
と
2
switch($app_id){
case 1:
case 2:
//do something
break;
case 3:
//do something else
break;
}
エチケットとは別に、あなたが2番目をしないより良い理由がありますか、それとも完全にあなた次第ですか?
私が尋ねる理由は、php.netで、必要かどうかに関係なく後者を実行するべきではないと言っているためです(php.netからの抜粋では、クエリを積み重ねたいかどうかに関係なく、ブレークなしでケースを実行するべきではないと述べています。ない):
<?php
switch ($i) {
case 0:
echo "i equals 0";
case 1:
echo "i equals 1";
case 2:
echo "i equals 2";
}
?>
ここで、$ iが0に等しい場合、PHPはすべてのechoステートメントを実行します。$ iが1に等しい場合、PHPは最後の2つのechoステートメントを実行します。$ iが2に等しい場合にのみ、期待される動作が得られます('i equals 2'が表示されます)。したがって、特定の状況下で意図的に提供することを避けたい場合でも、 breakステートメントを忘れないことが重要です。 )。
これまでの理由:
答え:フォールスルーを可能にするために休憩を省略した場合、フォールスルーが発生しているとコメントを入れて、次の人が「ああ!休憩がない!ブーム」にならないようにします–マークB
私のコメント:素晴らしい理由マーク!それはエチケットの尻です..あなたがそれを破ると、人々は彼らの船長の正しさによってうんざりする準備ができていません。
回答: @JamesT:非常に一般的なプログラミングエラーであるため、読んだ内容は誤って忘れてしまったことを警告するだけです。それが意図されている場合、あなたはそれを行うことができます。–うちはマダラ
私のコメント:それなら、エチケットがこの質問に勝つと思います。次の人があなたのコードを編集するのを混乱させるかもしれないので、休憩を入れてください。悲しいかな、あなたがそれを見逃すつもりだったことを説明するためにコメントを入れるのに十分賢明であるならば、それをしてください
答え:あなたは彼らの感情を理解するのを逃しています。私の最初の例のように、ケースごとに個別のアクションがある場合、彼らは休憩を省略することについて話している。例1の私の4と5のようなケースのグループ化は完全に問題なく、アクションがケース間で完全に共有されている場合は推奨されます。– Rawkode
私のコメント:私はこの文章が誤読される可能性があることに同意します。将来の開発者を混乱させて、あなたがブレイクアウトを残すつもりだったのかどうかを疑問視する以外に理由はありません。