课程
/后端开发
/PHP
/PHP入门篇
<?php$a=80;($b=$a>=60)?("及格"):("不及格");echo $b;?>这样输出的结果为什么是1 呢?
2017-04-26
源自:PHP入门篇 5-5
正在回答
你括起来之后得到比较出的结果为ture,然后赋值给变量b,在php里面ture代表的值为1而false代表的值为0,所以输出1。
慕用4111669
这是c语言里面讲的比较运算,可以百度一下具体运算方法
<?php$a=80;$c = ($b=$a>=60)?("及格"):("不及格");echo $b; //输出 1echo $c; // 输出 及格
?>
三元运算符 简单来说
? 前面是条件 ($b=$a>=60) 值为真 返回:前面的值 反之返回后面的值
首先>=的等于优先级高于=,先判断$a>=60,条件成立,返回true的值为1,把1赋值给$b,因为($b=$a>=60)?("及格"):("不及格");没有存在的容器,所以不会有判断的结果,想获取及格或者不及格$b=($b=$a>=60)?("及格"):("不及格");想获取$b的分数($b=&$a>=60)?("及格"):("不及格");
三元运算符从左到右运算,先算$b=$a>=60。而$b=$a>=60中 >= 优先级比 = 优先级高,先运算>=符号,即80>=60得到1,再将1赋给$b。输出的结果$b就是1了。
举报
PHP入门教程轻松学习,行业大牛帮您快速掌握PHP编程基础知识。
2 回答三元运算符提问
4 回答$row、三元运算符
1 回答三元运算与取模
3 回答可否用三元运算符计算
2 回答关于转换三元运算