0

所以我希望能够从创建的对象中调用对象的方法,只要我愿意。

例如

$test = new sampleObject;
$test2 = $test->createChild();
$test3 = $test2->createChild();
...

关键是,我需要能够从最顶层的创建者类中引用一个方法。

所以我有我的主要课程

class sampleObject
{
    public $tons, $of, $properties;

    public function createChild()
    {
        $someVar = new childObject();
        $this->otherMethod();
        return $someVar();
    }

    public function otherMethod()
    {
        //Do some stuff
    }
}

class childObject
{
    public $child, $properties;

    function createChild()
    {
        $someVar = new childObject();
        //here is my issue
        //I need to call a otherMethod from the creating class here but not static .
        return $someVar;
    }
}

这是错误的方法还是有办法引用该创建类对象。我想将创建的对象的属性与创建者类隔离开来。

我想过只是传递对象,但如果可能的话,我想保持与创建者类相同的结构。

4

1 回答 1

0

我能找到的最好方法是将它所属的对象传递给子对象。

所以$test2 = $test->createChild($test);

class childObject
{
    public $child, $properties, $parent;

    function createChild()
    {
        $someVar = new childObject($parent);
        $this->parent = $parent;
        //here is my issue
        //I need to call a otherMethod from the creating class here but not static .
        return $someVar;
    }
}
于 2014-05-07T17:07:34.473 回答