$r4 = 0?0:3; 结果是3
$r4 = 1?1:3; 结果是1
求原因?
因为$r4的值是1
因为三元运算符第一个值判断的结果是布尔值,也就是0和1,而你直接给了它0和1的值,所以它直接根据这个结果返回值,它就不会再判断,只要前面第一个给的是0,那么返回的永远都是第三个值,同样,只要前面给的不是0,那么返回的也会永远是第二个值,想要正确的返回结果,第一个值需是判断条件!
楼主你可以去看看三目运算符是什么功能
三目运算中的条件,0等于false,1等于true,所以第一个会是后面的结果,第二个会是前面的结果!
这楼主真是。。前面就看见你问的问题了,没想到你还没搞清楚。。。这里的=左边的和=右边的是不同的运算符,有优先级的。。你去看看运算符的优先级吧
$r4 = 0?0:3; 意思是判断r4的值是不是0,如果是0就把0赋值给$r4,如果$r4的值不是0就把3赋值给r4。建议你在看看三元运算符的定义哦