0

可能重复:
is_null($x) vs $x === null 在 PHP

在以下上下文中!== null!is_null()并且isset()都产生相同的结果:

$foo = null;

function foo() {
    if ($this->foo !== null) {
        ...
    }
    if (!is_null($this->foo)) {
        ...
    }
    if (isset($this->foo)) {
        ...
    }
}

哪一个是最快的,在这种情况下你会推荐哪一个?

4

4 回答 4

2

如果您不确定变量是否存在,请使用isset.

例子:

$content = (isset($_POST['content'])) ? $_POST['content'] : null;

否则,使用与 null 的严格比较。

if ($content === null) { }

(真的,我只是通过严格的比较来推动我对你的看法。我只是认为它看起来比 is_null 更好,而且它可能快一点。)

于 2012-11-15T09:27:50.867 回答
1

isset仅在可能未设置变量时使用。即,如果您不知道此时变量是否存在。由于您确实知道此时它应该存在,因此不要使用isset.

!== null和之间的差异!is_null可以忽略不计,主要取决于您的偏好。就个人而言,我喜欢!== null.

于 2012-11-15T09:27:39.523 回答
0
if ($this->foo !== null) {
      //...
}

我更喜欢这个条件。

于 2012-11-15T09:28:12.290 回答
0

据我说

  if($this->foo!=""){

//... }

这是最快的,并且可以快速产生结果

于 2012-11-15T09:57:23.127 回答