对象作为属性,获取父类

时间:2016-09-17 16:45:03

标签: php oop

我有2个课程,BeerIngredient

我的班级Beer有一个名为$ingredients的属性,它是一个Ingredient个对象的数组。

如果有一种方法可以在我的Ingredient类中确定此对象是否由 hand 实例化,或者属于$ingredients的{​​{1}}属性}?

1 个答案:

答案 0 :(得分:0)

没有隐式方法。发生这种情况时,您必须通知实例。

见这个例子:

class Beer{
    private $ingredients = [];

    public function addIngredient(Ingredient $ing){
        $this->ingredients[] = $ing;
        $ing->setOwner($this);
    }
}

class Ingredient{
    private $owner;

    public function getOwner(){
        return $this->owner;
    }

    public function setOwner($owner){
        $this->owner = $owner;
    }

    public function hasOwner() : bool{
        return isset($this->owner);
   }
}

现在,您可以使用Ingredient检查Beer中是否使用了$ingredient->hasOwner()的实例。