php中??和?:的区别

??和?:的区别 也就是 isset()与empty()的区别

??
$b = $a ?? $c;
相当于 $b = isset($a) ? $a : $c;

?:
$b = $a ?: $c;
相当于 $b = !empty($a) ? $a : $c;

empty: 判断一个变量是否为空(null、false、00、0、'0′、』这类,都会返回true)。
isset: 判断一个变量是否设置(值为false、00、0、'0′、』这类,也会返回true)。

isset

功能:检测变量是否设置
若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE

PHP的empty()函数 判断值为否为空

功能:检查一个变量是否为空
若变量不存在则返回 TRUE
若变量存在且其值为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE
若变量存在且值不为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 FALSE

posted @ 2020-12-27 22:35  caibaotimes  阅读(696)  评论(0编辑  收藏  举报