php if判断中为什么要检查isset()和!empty()

时间:2017-07-28
本文章向大家介绍php变量为什么要检查isset()和!empty(),需要的朋友可以参考一下。

isset!empty之间有没有差异。如果我做这个双布尔检查,这种方式是正确的还是多余的?是否有更短的方法来做同样的事情?

isset($vars[1]) AND !empty($vars[1])

isset() 测试变量是否设置且不为null:

http://us.php.net/manual/en/function.isset.php

empty() 当变量设置为某些值时,可以返回true:

http://us.php.net/manual/en/function.empty.php

所以这完全是多余的。empty或多或少是!isset($foo) || !$foo的简写,并且!empty类似于isset($foo) && $foo。即empty做相反的事情isset加上额外的检查值的真实性

或者换句话说,如果变量不存在,empty则相同!$foo,但不会发出警告。这是此函数的要点:进行布尔比较而不必担心设置的变量。

手册如下:

empty()与之相反(boolean) var除了未设置变量时不生成警告。

你可以在这里使用!empty($vars[1])