[英]Issues understanding nested PHP ternary operator ? echo $a ? 'a' : $b ? 'b' : 'c';
$a = true;
$b = false;
echo $a ? 'a' : ($b ? 'b' : 'c');
output a
我明白这一点。 如果已经在Internet上阅读并搜索了以下内容:嵌套的PHP三元运算符但是我仍然不明白为什么会有以下输出?
$a = true;
$b = false;
echo $a ? 'a' : $b ? 'b' : 'c';
output b
为什么呢? 有人可以将其表达为经典的if吗?
谢谢
echo $a ? 'a' : ($b ? 'b' : 'c');
这段代码说:如果$ a为true,则输出'a',否则,输出以下结果:如果b为true,则输出'b',否则输出'c'
因此,在该示例中,它将输出“ a”。
echo $a ? 'a' : $b ? 'b' : 'c';
本示例说:如果($ a?'a':$ b)为true,则输出'b',否则输出'c'。 如果我们看一下($ a?'a':$ b)的计算结果,它说:如果$ a为true,则输出'a',否则输出'b'。
如果查看PHP的类型比较表 ,则可以看到字符串的值为true,除非它们为空或为'0'。 因此,因此($ a?'a':$ b)-'a'的输出结果为true。 因此,它输出“ b”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.