PHP更好的检查非空的方法?

Cyn*_*ial 0 php

检查非空var的常用方法是:

if (!empty($var)) { ... }
Run Code Online (Sandbox Code Playgroud)

为什么我们不能使用:

if ($var) { ... }
Run Code Online (Sandbox Code Playgroud)

他们实际上是一样的,对吗?

参考:http://php.net/manual/types.comparisons.php

dec*_*eze 7

!empty($var)与just完全相同$var,除非empty 没有错误,如果$var不存在则抛出. empty是或多或少的简写!isset($var) || !$var.

empty如果您希望您的变量存在,那么您永远不应该使用,因为那时您只是不必要地抑制错误报告.仅empty在合法地期望变量可能不存在时才使用.如果你正确地初始化你的变量,这应该很少发生.

请参阅PHP的权威指南和空白,以便对此进行深入讨论.