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

$r4 = 0?0:3; 结果是3; $r4 = 1?1:3; 结果是1 ;求原因?

$r4 = 0?0:3;     结果是3

$r4 = 1?1:3;     结果是1

求原因?

正在回答

6 回答

因为$r4的值是1

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

qq_听得见的安静_0 提问者

非常感谢!
2016-02-26 回复 有任何疑惑可以回复我~
#2

qq_听得见的安静_0 提问者

那 $r4 = 0?0:3; $r4的值是0呢 为啥输出是3 .。。
2016-02-26 回复 有任何疑惑可以回复我~

因为三元运算符第一个值判断的结果是布尔值,也就是0和1,而你直接给了它0和1的值,所以它直接根据这个结果返回值,它就不会再判断,只要前面第一个给的是0,那么返回的永远都是第三个值,同样,只要前面给的不是0,那么返回的也会永远是第二个值,想要正确的返回结果,第一个值需是判断条件!

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

慕村5099856

还是你说的通透,谢谢
2018-07-20 回复 有任何疑惑可以回复我~

楼主你可以去看看三目运算符是什么功能

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

三目运算中的条件,0等于false,1等于true,所以第一个会是后面的结果,第二个会是前面的结果!

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

这楼主真是。。前面就看见你问的问题了,没想到你还没搞清楚。。。这里的=左边的和=右边的是不同的运算符,有优先级的。。你去看看运算符的优先级吧

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

qq_听得见的安静_0 提问者

嗯嗯 我懂了 谢谢
2016-02-27 回复 有任何疑惑可以回复我~

 $r4 = 0?0:3; 意思是判断r4的值是不是0,如果是0就把0赋值给$r4,如果$r4的值不是0就把3赋值给r4。建议你在看看三元运算符的定义哦

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

qq_听得见的安静_0 提问者

您说的我理解,可就不明白 为啥 $r4 的值为什么不能为 0 却可以为1 .。。
2016-02-26 回复 有任何疑惑可以回复我~
#2

花落相随0 回复 qq_听得见的安静_0 提问者

1为真,所以去第一个 0为假 则是后面的那个
2016-03-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP入门篇
  • 参与学习       455994    人
  • 解答问题       6306    个

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

进入课程

$r4 = 0?0:3; 结果是3; $r4 = 1?1:3; 结果是1 ;求原因?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信