在以下背景中!== null
,!is_null()
和isset()
都会产生相同的结果:
$foo = null;
function foo() {
if ($this->foo !== null) {
...
}
if (!is_null($this->foo)) {
...
}
if (isset($this->foo)) {
...
}
}
哪一个是最快的,你会在这种背景下推荐哪一个?
答案 0 :(得分:2)
如果您不确定该变量是否存在,请使用isset
。
示例:
$content = (isset($_POST['content'])) ? $_POST['content'] : null;
否则,使用严格比较为null。
if ($content === null) { }
(真的,我只是通过严格的比较来推动我对你的看法。我只是认为它看起来比is_null好,而且它可能会更快一点点。)
答案 1 :(得分:1)
仅在未设置变量的情况下使用isset
。即如果您不知道此时变量是否存在。既然您确实知道它应该存在,请不要使用isset
。
!== null
和!is_null
之间的差异可以忽略不计,主要取决于您的偏好。就个人而言,我喜欢!== null
。
答案 2 :(得分:0)
if ($this->foo !== null) {
//...
}
我更喜欢这种情况。
答案 3 :(得分:0)
根据我的说法
if($this->foo!=""){
// ... }
这是最快的,并快速产生结果