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

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

<?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
提交
取消
PHP入门篇
  • 参与学习       456044    人
  • 解答问题       6307    个

PHP入门教程轻松学习,行业大牛帮您快速掌握PHP编程基础知识。

进入课程
意见反馈 帮助中心 APP下载
官方微信