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