likes
comments
collection
share

PHP多个三目运算拼接的问题

作者站长头像
站长
· 阅读数 57

今天看到之前老代码是这样写的:

<?php
$a = "AA";
$b = "BB";
$c = !empty($a)?$a:"".!empty($b)?$b:"";
echo $c;
?>

上面写法就是拼接操作,原以为结果会是AABB,运行才发现结果是BB

研究了一下,我个人认为

$c = !empty($a)?$a:"".!empty($b)?$b:"";

相当于

$c = (!empty($a)?$a:"".!empty($b))?$b:"";

(!empty($a)?$a:"".!empty($b))为一体,当条件!empty($a)为真的时候就输出$b

如果这个时候把改为$a="",他的结果还是BB

也就是说(!empty($a)?$a:"".!empty($b))可以理解为或运算,!empty($a)为false但是!empty($b)为true,所以还是$b

转载自:https://juejin.cn/post/7143877505529675812
评论
请登录