if($a) 和 if(!empty($a)) 的区别

发布时间 2023-11-21 09:01:49作者: lbnnbs

empty: 以下内容被认为是空的:

""(空字符串)
0(0 为整数)
"0"(0 作为字符串)
无效的
错误的
array() (一个空数组)
声明的为赋值的变量

 

if($a)会进行隐式转换,转换结果和empty是一致的,所以if($a) 和 if(!empty($a))在结果上不会有区别

 

区别在于隐式转换有转换过程,empty只是简单的二值判断(布尔判断),速度更快,且隐式转换会导致PHP进入异常或错误处理过程,也同样影响性能。