php的三元运算符有几种写法:
$arr = [1,2];
1、?? 运算符(合并运算符)
此运算符是php7加入的,用于执行isset(),如果已设置,即使值是为空,也返回对应值。
如果想判断变量是否设置并且返回对应变量值:$arr ?? '数组为空'; 因为$arr为[1,2],所以此处返回$arr,即[1,2]
如果想判断变量是否设置并返回对应的Boolean值:[] !== $arr ??false; 因为$arr为[1,2],所以此处返回true
综上,可以看出此运算符是判断前面运算值,并返回对应的结果。
2、?: 运算符(条件运算符)
此运算符是判断是否为空,且变量必须已设置。
同合并运算符一样,有两种取值方式:
如果想要判断变量是否为空且返回对应变量值:$arr ?: 0; 因为$arr为[1,2],所以此处返回[1,2]
如果想判断变量是否为空并返回对应的Boolean值: !empty($arr) ?: false; 因为$arr为[1,2],所以此处返回true
3、? do something : do something else 运算符
和条件运算符一样,此运算符是判断是否为空,且变量必须已设置。不同点是此运算符返回值是自己定义的。
如:!empty($arr) ? '数组不为空' : '数组为空'; 因为$arr为[1,2],所以此处返回值是 数组不为空。
其实以上只是简单地列举了三个运算符常见的用法,如果想要了解其他用法,可以在网上查找。