'&&'和'AND'在PHP中是不同的

这个问题在这里已经有了答案:

  • 'AND'和'&&'作为操作符10的答案

  • AND具有较低的优先级。

    $C = $A AND $B将被解析为($C = $A) AND $B


    对于变量$ a和$ b设置如下:

    <?php
    
    $a = 7;
    $b = 0;
    

    使用AND的优点是短路评估发生在代码中,如下所示:

    $c = $a AND $b;
    var_dump( $c ); // 7
    

    由于赋值运算符具有比AND更高的优先级,$ a的值被赋值给$ c; $ b会被跳过。

    相反,请考虑以下代码:

    <?php
    
    $c = $a && $b;
    var_dump( $c ); // (bool) false
    

    在这个片段中, &&比赋值运算符具有更高的优先级,并且给定$ a的值不为零,所以不存在短路。 逻辑“与”的结果基于对$ a和$ b的评估。 $ a评估为真,$ b为假。 表达式的整体值false是分配给$ c的值。 这个结果与之前的例子完全不同。


    两者都具有相同的事物,但&&AND.具有更高的优先级AND.

    更多: - 'AND'和'&&'作为操作符

    链接地址: http://www.djcxy.com/p/57613.html

    上一篇: '&&' and 'AND' is different in PHP

    下一篇: Why && return true and and return false?