什麼是檢查實例變量是否從未分配的好方法?考慮下面的例子。 $this->foo
爲空即可開始。如果在數據庫中找到$this->foo
,則後續調用getFoo()
將不會查詢數據庫。但是,如果數據庫中沒有任何內容被返回(null),所有後續調用仍然會觸發數據庫..不好。php檢查是否聲明瞭實例變量但未分配實例變量
class FooBar
{
protected $foo;
protected $db;
public function getFoo()
{
if (is_null($this->foo)) {
$this->foo = $this->db->getFooFromDatabase();
}
return $this->foo;
}
}
我認爲你需要使用一個虛擬值而不是null ......這樣你可以區分「未設置」和「空」。 – mpen
@標記我認爲你是對的。不知道是否有一個流行的價值/對象/不斷這樣做 – David