2012-03-26 11 views
1

あなたはこのような条件があります。実行順PHP

if ($condition_1 && $condition_2)

とcondition_1が、それは一方で、真または偽とcondition_2であるかどうかを把握するために1ミリ秒かかります場合は、

if ($condition_2 && $condition_1)

としてそれを書くのオプションがあります1000msと言うと、もっと長い時間がかかります!あなたは上記の条件をどのように書くのですか?右または左の方が遅い?

条件の1つがFALSEであると判断された場合、PHPは他の条件がTRUEであるかどうかを確認することはありません。もしそうなら、それは世紀の最大の驚きでしょう!

+2

を待たずに、「条件が失敗しました」表示します

function short(){ return false; } function long(){ sleep(5);// sleep for 5 secondsd return true; } if (short() && long()){ echo "condition passed"; }else{ echo "condition failed"; } 

、あなたの最大の問題は、」にISN最初に実行されているt –

+1

これは[短絡評価](http://en.wikipedia.org/wiki/Short-circuit_evaluation)と呼ばれ、PHPはそれを行います。それを試してみてください。 – Wiseguy

+0

@andreas!それはhypotethicな質問です、私は質問を1ms対2msと言えるかもしれません。その時、私は確かに誰かが示唆したでしょう、なぜ迷惑です。 :) –

答えて

2

CおよびC++最初に改訂するFALSEANDの状態にします。これはPHPの場合もあります。だから、まず短くしておくことをお勧めします。この例では明らかにケースを示しています。これは、ほとんどすぐにif文で1000ミリ秒で実行されている機能で5秒....

9

条件は左から右に評価されます。最短の状態を一番左の位置に置きます。正しいのですが、if文の左端の条件がfalseになると、次の条件はまったくチェックされません。