PHP:if(!$ val)VS if(empty($ val)).有什么区别吗?

Bac*_*chx 18 php null if-statement boolean

我想知道下面两个案例有什么不同,推荐哪一个?

$val = 0;

if (!$val) {
  //True
}

if (empty($val) {
  //It's also True
}
Run Code Online (Sandbox Code Playgroud)

Shi*_*Shi 26

看看PHP类型比较表.

如果您查看表格,您会注意到,对于所有情况,empty($x)都是相同的!$x.所以它归结为处理未初始化的变量.!$x创造一个E_NOTICE,而empty($x)不是.


Nic*_*can 6

如果您使用 empty 并且从未设置/创建变量,则不会抛出警告/错误。