私は PHP にまったく慣れていないので、IF ステートメントについて質問があります。
例 1:
<?php
if($a == 1){
if($b == 1){
echo 'test';
}
}
?>
例 2:
<?php
if($a == 1 && $b ==1){
echo 'test';
}
?>
どちらも同じ結果ですが、どちらが速いですか? それも問題ですか?
私は PHP にまったく慣れていないので、IF ステートメントについて質問があります。
例 1:
<?php
if($a == 1){
if($b == 1){
echo 'test';
}
}
?>
例 2:
<?php
if($a == 1 && $b ==1){
echo 'test';
}
?>
どちらも同じ結果ですが、どちらが速いですか? それも問題ですか?
どちらも同じです。どちらの場合も、最初の条件が false の場合、2 番目の条件はテストされません。
どちらも同じです。より短い構文を作成するために書くことさえできる、最適化されるコードはあまりありません。
<?php
echo $a && b ? 'test' : '';
?>
同じことをします。
Baba のベンチマークを少し変更して、結果の簡略構文を確認しました。
事前最適化はすべての悪の根源です。
とは言っても、最初のコードはわずかに高速です (ただし、繰り返しますが、最小限です。コードをこれに変更する必要はありません。条件を変更することで得られるわずかな速度の増分よりも、読みやすさの方がはるかに重要です。
最初のコード片の3,000,000 回の反復: ~ 0.9861679077 秒
2 番目のコード片の 3,000,000 回の反復: ~ 1.0684559345 秒
差: ~ 0.0822880268 秒
反復あたりの差: ~ 0.0000000274 秒 (または 274 ナノ秒)。
いいえ、関係ありません。このようなわずかなパフォーマンスの微調整は、通常、実行環境によって克服されます。非効率的なアルゴリズムやクライアント側のベスト プラクティスが無視されているなど。
PHPインタープリターはそれを理解するのに「十分賢い」ため、どちらも同じです。