Determing空值,最好的方式做到这一点
目前,每当我试图确定当一个变量没有定义我使用的代码Determing空值,最好的方式做到这一点
如果($变量==“”)
但是我有已经告诉人们使用的功能
如果(空($变量))
这一读,如果该值是0返回false,和我有很多数组值是零那不能是返回false。我总是可以添加|| $变量== 0)来跳过这个。
但我所问的是为什么这是一个确定空变量的首选方法,它是效率还是有更多的呢?
如果你需要知道,使用严格的类型比较:
if (empty($variable) && $variable !== 0) // !== instead of !=
一般来说,你应该使用isset()
- 如果变量尚未定义,则返回false:
$a = 4;
echo isset($a) ? 'a' : 'no a'; // a
echo isset($b) ? 'b' : 'not to b'; // not to b
没问题isset实际上对于我所要求的更有意义,这仍然让我想知道,使用isset或empty的实际推理对if($ var ==“”)是有利的,因为这会导致代码运行正常 – JimmyBanks 2012-02-11 02:18:57
如果变量尚未设置,则取决于PHP的配置方式,它可能会继续愉快地运行,或者可能会出错并停止。如果它继续下去,则需要**显着更长的时间来尝试从尚不存在的变量读取(阅读:通常不值得关心)。使用'isset()'的主要原因是因为它是**正确的方法**来检查:P哦,以及致命的错误。这也是一个很大的问题。 – Joe 2012-02-11 02:21:58
好,所以它的主要效率,我从来没有收到它的错误信息,我有错误信息。生病开始我的代码切换到正确的使用,谢谢。 – JimmyBanks 2012-02-11 02:47:24
这一切都取决于您的需求。 isset()和empty()是使用的主要方法。 – Brad 2012-02-11 02:12:56
为什么这些方法优先于if($ var ==“”)的简单if语句? – JimmyBanks 2012-02-11 02:13:59