2

私は PHP にまったく慣れていないので、IF ステートメントについて質問があります。

例 1:

<?php
if($a == 1){
  if($b == 1){
    echo 'test';
  }
}
?>

例 2:

<?php
if($a == 1 && $b ==1){
  echo 'test';
}
?>

どちらも同じ結果ですが、どちらが速いですか? それも問題ですか?

4

6 に答える 6

1

どちらも同じです。どちらの場合も、最初の条件が false の場合、2 番目の条件はテストされません。

于 2013-06-06T09:02:09.963 に答える
1

どちらも同じです。より短い構文を作成するために書くことさえできる、最適化されるコードはあまりありません。

<?php
echo $a && b ? 'test' : '';
?>

同じことをします。

Baba のベンチマークを少し変更して、結果の簡略構文を確認しました。

結果

于 2013-06-06T09:03:18.190 に答える
1

事前最適化はすべての悪の根源です。

とは言っても、最初のコードはわずかに高速です (ただし、繰り返しますが、最小限です。コードをこれに変更する必要はありません。条件を変更することで得られるわずかな速度の増分よりも、読みやすさの方がはるかに重要です

最初のコード片の3,000,000 回の反復: ~ 0.9861679077 秒
2 番目のコード片の 3,000,000 回の反復: ~ 1.0684559345 秒

差: ~ 0.0822880268 秒
反復あたりの差: ~ 0.0000000274 秒 (または 274 ナノ秒)。

于 2013-06-06T09:09:58.860 に答える
0

いいえ、関係ありません。このようなわずかなパフォーマンスの微調整は、通常、実行環境によって克服されます。非効率的なアルゴリズムやクライアント側のベスト プラクティスが無視されているなど。

于 2013-06-06T09:02:21.057 に答える
0

PHPインタープリターはそれを理解するのに「十分賢い」ため、どちらも同じです。

于 2013-06-06T09:02:48.217 に答える