PHP-三元运算符

今天在看同事提交的diff的时候发现了一个,自己不常用的写法
下面简单记录下三元的使用:
三元运算符语法:条件 ? 结果1 : 结果2 ,看起来不难理解
问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2

例:
$a = true;
$b = $a ? 1 : 2;
echo $b;

在平时写代码过程中 三元运算虽然可以嵌套多个进行达到 if else if的使用,但为了代码的可读性,不建议这么使用。

第二种简洁写法:

$a = 1;
$b = a ?: 2;
echo $b;

这里有个个需要注意的地方,很多小伙伴在使用三元的时候 ,会对条件参数进行判断,例如:isset empty 等。
在同事提交的代码中,就将运算写成了

$a = 1;
$b = isset($a) ?: 2;
var_dump($b);

如上代码并不会报错,但$b得到的赋值并不是你想要的,因为isset()会对$a变量进行判断,返回一个布尔值 true / false ,这个时候$b得到的就是 true了。并不是会把$a 的值 “ 1 ”赋值给它。

你可能感兴趣的:(PHP-三元运算符)