2011-10-30 8 views
0

私はif then else文で2 whileループを持っていますが、コードは動作していますが、すべてが良いですが、ちょっと疑問です。ifとintegerの内部で、どちらが速く、どれが正しいPHPですか?

私の最初の例を取る、私はwhileループでそれを実行するための真のステートメントを宣言し、

if ($levelChange > 0) { 
    while ($levelChange != 0) { 
     echo '<p>You gained a level you are now ' . ($levelChange + $user['level']) . '</p>'; 
     $levelChange--; 
    } 
} 
elseif ($levelChange < 0) { 
    while ($levelChange != 0) { 
     echo '<p>You just lost a level you are now ' . ($levelChange + $user['level']) . '</p>'; 
     $levelChange++; 
    } 
} 

そして、私の第二の例Iにはない、

if ($levelChange > 0) { 
    while ($levelChange) { 
     echo '<p>You gained a level you are now ' . ($levelChange + $user['level']) . '</p>'; 
     $levelChange--; 
    } 
} 
elseif ($levelChange < 0) { 
    while ($levelChange) { 
     echo '<p>You just lost a level you are now ' . ($levelChange + $user['level']) . '</p>'; 
     $levelChange++; 
    } 
} 

彼らは仕事の両方が、どちらを使うのが良いのですか、なぜ誰かがもっと速くなるかを知っているなら、私に教えてください。

ありがとう

答えて

2

PHPは、引数を条件文が必要なブール値に変換します。 0以外の値(!= 0)がすべて真であると評価されます。 boolean typeのPHPドキュメントには、さまざまなタイプの変換ルールのある表があります。

したがって、if($x)if($x == TRUE)に相当します。 2つの形式の間に(測定可能な)パフォーマンスの違いはありません。

+0

phpのゼロは常にfalseになり、正数または負数はすべて真となりますか? – cgweb87

+0

@ cgweb87:はい、正確です。 0以外の数字は真実とみなされます。 – knittl

+0

おかげさまクール今は理解しています、ありがとう、私はちょうど私の個人的な好みを使用します、ありがとう! – cgweb87

1

この場合、私はあなたの好みだと言います。私はおそらく0との比較を使用しますが、それはあなたのコードを読んでいる誰かに少し冗長であるため、私の好みにすぎません。どちらの方法でもパフォーマンスに大きな変化はないはずです。

関連する問題