3

いくつかのコーディング ガイドラインでは、テストする変数を条件の最後に置く必要があると述べています。

// Incorrect
if($isSomething === FALSE) { // Do something }

// Correct
if(FALSE === $isSomething) { // Do something }

一部のプログラマーは、次のような状況で変数を初期化するという悪い習慣を持っていることを知っています。

if($results = $db->getResults() { // Do something if results exist }

したがって、この直感に反する規則を使用する唯一の理由は、PHP で等号 (=) を 2 つではなく 1 つだけ使用した場合に誤って再初期化することを防ぐためです。

他の理由はありますか?

4

1 に答える 1

5

比較したい場合に誤って値を割り当てることはできません。これにより、小さなエラーを簡単に見つけることができます。

if (FALSE = $isSomething)定数を再割り当てできないため、エラーがスローされます。wheras
if ($isSomething = FALSE)は常にtrueを返し、おそらく長い間そのエラーに気付かないでしょう。

于 2012-04-15T15:40:59.833 に答える