检查实例变量是否从未分配过的好方法是什么。考虑以下示例。$this->foo
为空开始。如果$this->foo
在数据库中找到,后续调用getFoo()
不会查询数据库。但是,如果数据库中没有任何内容被返回(null),那么所有后续调用仍然会命中数据库......不好。
class FooBar
{
protected $foo;
protected $db;
public function getFoo()
{
if (is_null($this->foo)) {
$this->foo = $this->db->getFooFromDatabase();
}
return $this->foo;
}
}