PHP:isset vs is_null - 我什么时候需要使用另一个?

时间:2014-03-01 06:13:31

标签: php isset isnullorempty

我试图理解PHP的isset()is_null()函数是如何彼此不同的。

我确实理解他们与手册的区别,但无法提出任何我绝对需要使用一个功能而不是另一个功能的例子。

似乎我可以使用其中一个并不重要,除非isset在引用不存在时不会抛出Notice错误,而{{1} } 将。

如果我抑制这种类型的错误,那么就功能而言,这两个函数将完全相似。

我是否理解正确?

1 个答案:

答案 0 :(得分:3)

null表示无效,无价值,而您使用isset()表示变量是否为isset,例如..

$var = null;

isset($var); //returns false, checks whether the variable isset, 
             //but it's null so will return false

is_null($var); //Returns true, checks whether the value of variable is null

来自Docs

  

如果某个变量未设置unset(),则不再设置该变量。   如果测试已设置的变量,isset()将返回FALSE   NULL

更进一步,我们改变变量值

$var = 'hello';
isset($var); //will return true as the variable is no more null
is_null($var); //will return false as variable holds a string now

如果我抑制此类错误

不,你不应该,总是打开错误报告,编写错误的代码无论如何也无济于事。