인스턴스 변수가 할당 된 적이 없는지 확인하는 좋은 방법은 무엇입니까? 다음 예제를 고려하십시오. $this->foo
은 시작할 때 null입니다. 데이터베이스에 $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 대신 dummy 값을 사용해야한다고 생각합니다. 그런 식으로 'not set'과 'null'을 구별 할 수 있습니다. – mpen
@ 마크 당신이 옳다고 생각합니다. 이것을하는 대중적인 가치/객체/일정한 방법이 있는지 모르겠다. – David