2012-05-07 25 views
0

私のオブジェクトの属性の1つを別のタイプのオブジェクトの配列にしたいと思います。PHPのオブジェクト内にオブジェクトの配列を格納するにはどうすればよいですか?

どのように私はこれを表しています(すなわち、公共の$ someObjectArray;)

この属性にエントリを追加するための構文は何でしょうか?

オブジェクトを参照する構文は何でしょうか?

便利な文脈を提供すること。

テナントモデルはいくつかを持っている場合

答えて

1
class Tenant { 
    // properties, methods, etc 
} 

class Property { 
    private $tenants = array(); 

    public function getTenants() { 
     return $this->tenants; 
    } 

    public function addTenant(Tenant $tenant) { 
     $this->tenants[] = $tenant; 
    } 
} 

...オブジェクトは、名前、年齢などのような独自のプロパティを持っていますテナントの数そのうちの1つは、いくつかの属性を持っている性質であることを前提としています(ID、一意の名前など)を識別するためには、より良いアクセサメソッドを提供するためにそれを考慮に入れることができます。例えば、

class Tenant { 
    private $id; 

    public function getId() { 
     return $this->id; 
    } 
} 

class Property { 
    private $tenants = array(); 

    public function getTenants() { 
     return $this->tenants; 
    } 

    public function addTenant(Tenant $tenant) { 
     $this->tenants[$tenant->getId()] = $tenant; 
    } 

    public function hasTenant($id) { 
     return array_key_exists($id, $this->tenants); 
    } 

    public function getTenant($id) { 
     if ($this->hasTenant($id)) { 
      return $this->tenants[$id]; 
     } 
     return null; // or throw an Exception 
    } 
} 
関連する問題