インスタンス変数が割り当てられていないかどうかを確認する良い方法は何ですか。次の例を考えてみましょう。$this->foo
開始するにはnullです。$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;
}
}