我们应该声明并检查null还是在PHP中使用isset?

时间:2016-03-14 09:09:27

标签: php

哪种方法被认为是最佳做法?

声明并检查null ...

class Foo {
  $bar = null;
  function test() {
    return $this->bar != null;
  }
}

或者,isset(...) ...

class Foo {
  function test() {
    return isset($this->bar);
  }
}

1 个答案:

答案 0 :(得分:3)

声明您的类具有的所有属性更有意义,并检查它们的值是什么。它让您清楚地了解了类可以做什么以及它可能具有什么值,而不是猜测某些其他函数可能在以后寻找的属性的每一步。

class Foo {
  protected $bar = null;
  public function test() {
    return $this->bar !== null;
  }
}

请注意!==检查;如果你只是使用!=,除了null之外,其他一些值的条件也是如此。

它与代码中的任何其他变量完全相同:您应该始终初始化代码将使用的任何和所有变量,然后只需担心它们的值。 isset应专门用于您对变量存在无控制的情况,例如就像用户输入的情况一样。对于您完全控制变量存在或不存在的任何其他情况,请选择明确初始化它们。