我试图理解PHP的isset()
和is_null()
函数是如何彼此不同的。
我确实理解他们与手册的区别,但无法提出任何我绝对需要使用一个功能而不是另一个功能的例子。
似乎我可以使用其中一个并不重要,除非isset
在引用不存在时不会抛出Notice
错误,而{{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
如果我抑制此类错误
不,你不应该,总是打开错误报告,编写错误的代码无论如何也无济于事。