哪种方法被认为是最佳做法?
声明并检查null ...
class Foo {
$bar = null;
function test() {
return $this->bar != null;
}
}
或者,isset(...)
...
class Foo {
function test() {
return isset($this->bar);
}
}
答案 0 :(得分:3)
声明您的类具有的所有属性更有意义,并检查它们的值是什么。它让您清楚地了解了类可以做什么以及它可能具有什么值,而不是猜测某些其他函数可能在以后寻找的属性的每一步。
class Foo {
protected $bar = null;
public function test() {
return $this->bar !== null;
}
}
请注意!==
检查;如果你只是使用!=
,除了null
之外,其他一些值的条件也是如此。
它与代码中的任何其他变量完全相同:您应该始终初始化代码将使用的任何和所有变量,然后只需担心它们的值。 isset
应专门用于您对变量存在无控制的情况,例如就像用户输入的情况一样。对于您完全控制变量存在或不存在的任何其他情况,请选择明确初始化它们。