为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

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

?>

正在回答

2 回答

这个语法本身就有问题,三元运算符的机制是问号前面的条件成立则返回问号后面的内容否则返回冒号后面的内容,而我们表判断的与或非分别为 &&,||,!,你要是用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?"通过":"不通过";
?>


1 回复 有任何疑惑可以回复我~
#1

Dr_苏泊

echo $d and $a?"通过":"不通过"; 为什么这一行输出为空而不是和最后一行一样输出为1
2016-03-04 回复 有任何疑惑可以回复我~
#2

财迷煎饼

示例中的 && 和 || 都没有用括号。有什么影响吗?
2016-05-24 回复 有任何疑惑可以回复我~

考虑到优先级

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号