これは質問よりも多くの投票であり、正しい答えはありません。
しかし、一般的に、あなたの
if
が否定であるか、容易に他のケースのように書かれている場合、私は
continue
となるだろう
if
(
if ($v == 10) {} else {/*...*/}
のように)対応します。したがって、いくつかの例外を除いてすべてのケースを
$v
に実行したい場合は、開始時にこれらの例外をフィルタリングし、
continue
を実行します。
だから、私は希望:
foreach ($k as $v) {
if($v == 10) {
continue;
}
// code ...
}
この理由は、より多くの例外が発生したとき、彼らはこのように簡単に追加することができるということです。確かに
foreach ($k as $v) {
if($v == 10 || $v == 29) {
continue;
}
if($v = 12) {
continue;
}
// ... code
}
、これも
if ($v != 10 && $v != 29 && $v != 12) {
// ... code
}
で達成することができるが、時間が追加されますように理想的ですよりも、このif
はすぐに読んで理解するために、より複雑に成長することができ、複数の条件にスリットすることはできませんますます多くの例外があります。
この例を取ってください。あなたはどれがより明確で、精神的に把握しにくいと思いますか?
foreach ($k as $i => $v) {
if ($i = 8) { continue; }
if ($i % 3) { continue; }
if ($v['foo'] == 'bar') { continue; }
if ($v['bar'] == 'foo') { continue; }
if ($v['foobar'] == 10) { continue; }
if ($v['value'] < 0 || $v['value'] > 100) { continue; }
// else, do code...
}
それとも...また
foreach ($k as $i => $v) {
if ($i != 8 && !($i & 3) && $v['foo'] != 'bar' && $v['bar'] != 'foo' && $v['foobar'] != 10 && $v['value'] >= 0 && $v['value'] <= 100) {
// do code ...
}
}
は、私がいない10が等しい場合はスキップよりも精神的なスリップのために、より傾向がある等しい場合この操作を行う(否定は理解が困難であることを見出しました10)。
多言語設定でコーディングする場合、同じ文化と言語がネイティブの否定を言語に持たないと考える必要があるかもしれないので、否定という概念はエイリアンです経験豊富なプログラマーでさえも、コードをすばやくブラウズするときに逃してしまうことがあります。しかしこれはあなたが考慮する必要があるかもしれません。
私はより良い第2のものと一緒に行くと思います。 –
それはここに意見に基づいていて、トピックではないです。 (私は、例えば、コードとロジックに基づいて選択し、より意味をなさないもの) – Rizier123
私が理解する限り、第2のものはO(1)高速です。あなたは完全にそれを無視し、あなたの好む方法で行くことができます! –