慕粉553184836
2017-04-26 15:43
<?php
$a=80;
($b=$a>=60)?("及格"):("不及格");
echo $b;
?>
这样输出的结果为什么是1 呢?
你括起来之后得到比较出的结果为ture,然后赋值给变量b,在php里面ture代表的值为1而false代表的值为0,所以输出1。
这是c语言里面讲的比较运算,可以百度一下具体运算方法
<?php
$a=80;
$c = ($b=$a>=60)?("及格"):("不及格");
echo $b; //输出 1
echo $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入门篇
455994 学习 · 6306 问题
相似问题