问答详情
源自:5-6 PHP中的逻辑运算符

为什么and输出的是1,&&输出的是不同意

<?php
   $a = TRUE; //A同意
$d = FALSE; //D反对

echo $a && $d?"通过":"不通过";

echo $a and $d?"通过":"不通过";

?>

提问者:林书巧 2015-12-04 22:44

个回答

  • 慕后端1508769
    2015-12-04 23:55:13
    已采纳

    这个语法本身就有问题,三元运算符的机制是问号前面的条件成立则返回问号后面的内容否则返回冒号后面的内容,而我们表判断的与或非分别为 &&,||,!,你要是用and的话则首先应用括号括起来,你可以试着运行下下面代码

    <?php 
        $a = TRUE; //A同意
        $d = FALSE; //D反对
    
        echo ($a && $d)?"通过":"不通过";
        echo $d and $a?"通过":"不通过";	
    
        echo ($a && $d)?"通过":"不通过";
        echo ($d and $a)?"通过":"不通过";	
    
        echo ($a && $d)?"通过":"不通过";
        echo $a and $d?"通过":"不通过";
    ?>


  • 林书巧
    2015-12-04 22:51:05

    考虑到优先级