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

为什么前三个逻辑关系需要括号括起来,拿掉括号就不行,下面三个逻辑关系既可以有括号,也可以无括号,想不明白,求大神告知一下?

<?php 
    $a = TRUE; //A同意
	$b = TRUE; //B同意
	$c = FALSE; //C反对
	$d = FALSE; //D反对
	//咱顺便复习下三元运算符
	echo ($a and $b)?"通过":"不通过";
	echo "<br />";
	echo ($a or $c)?"通过":"不通过";
	echo "<br />";
	echo ($a xor $c xor $d)?"通过":"不通过";
	echo "<br />";
	echo !$c?"通过":"不通过";
	echo "<br />";
	echo $a && $d?"通过":"不通过";
	echo "<br />";
	echo $b || $c || $d?"通过":"不通过";
?>	


正在回答

2 回答

应该是与 运算符的优先级顺序有关吧。。

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

echo ($a and $b)?"通过":"不通过";这个地方复习了一下上一节的三元运算符,加上括号之后$a and $b整体当做一个表达式进行三元运算,如果不加括号的话,那么参与三元运算的只有这部分 $b?"通过":"不通过",他的运算结果是通过,然后再echo $a and "通过";此时的输出结果为1,如果把$a换成$c的话,结果是false,在浏览器上无输出,可以用var_dump打印这个表达式,可以看到结果是bool(false)。建议多做几个实验,多分析分析,自然而然就能找到问题的答案,而且印象深刻。

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

omigia

$a and "通过";//字符串在内存中是非零的,即为true,再同 $a 相与,是否是这样理解?
2014-11-01 回复 有任何疑惑可以回复我~
#2

crazydaddy

给力!懂了!
2014-11-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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