does the condition after && always get evaluated

后端 未结 6 708
予麋鹿
予麋鹿 2020-12-03 02:48

I have this if statement that tests for the 2 conditions below. The second one is a function goodToGo() so I want to call it unless the first condi

相关标签:
6条回答
  • 2020-12-03 02:55

    Yes. The two blocks are the same. PHP, like most (but not all) languages, uses short-circuit evaluation for && and ||.

    0 讨论(0)
  • 2020-12-03 02:58

    Yes, the 2 code blocks you gave are equivalent. PHP has short-circuiting, so when you use || and &&, any statement after the first only gets evaluated when necessary.

    0 讨论(0)
  • 2020-12-03 03:08

    The two blocks ARE same.

    PHP logical operators are "lazy", they are evaluated only if they are needed. The following code prints "Hello, world!":

    <?php
    $a = 10;
    isset($a) || die ("variable \$a does not exist.");
    print "Hello, world!"
    ?>
    

    Other logical operators includes &&, and, or.

    <?php
    perform_action() or die ('failed to perform the action');
    ?>
    

    is a popular idiom.

    0 讨论(0)
  • 2020-12-03 03:10

    the second condition will only be checked if and only if first one is true, hence both statements are equivalent.

    0 讨论(0)
  • 2020-12-03 03:13

    No--the second condition won't always be executed (which makes your examples equivalent).

    PHP's &&, ||, and, and or operators are implemented as "short-circuit" operators. As soon as a condition is found that forces the result for the overall conditional, evaluation of subsequent conditions stops.

    From http://www.php.net/manual/en/language.operators.logical.php

    // --------------------
    // foo() will never get called as those operators are short-circuit
    
    $a = (false && foo());
    $b = (true  || foo());
    $c = (false and foo());
    $d = (true  or  foo());
    
    0 讨论(0)
  • 2020-12-03 03:18

    Always corelate your technical Language with your own language, Likewise here, If I say you in verbal conversation, its just like :You are asking= "if I am hungry '&&' I am eating Pizza" is similar to "If I am hungry then only i am eating Pizza"? So here you can see that later phrase says that untill i am not hungry i am not eating pizza, and the former says I am humgry and I am eating pizza. :-)

    0 讨论(0)
提交回复
热议问题