如何从类中调用另一个类方法?

时间:2010-05-07 06:59:12

标签: php oop class

这是我的设置。

class testA {

    function doSomething() {
    return something;
    }

}

$classA = new testA();

class testB {

 $classA->doSomething();


}

这不适用于该类:$ classA-> doSomething(); 我怎么会这样做?

2 个答案:

答案 0 :(得分:2)

有两种方法可以做到:聚合和合成

聚合是指您传递对象的引用。如果对象容器被销毁,则包含的对象不是

class testB {

    private $classA;
    public function setClassA ( testA $classA ) {
        $this->classA = $classA;
    }
    public function doStuffWithA() {
        $this->classA->doSomething();
    }

}

$classA = new testA;
$classB = new testB;
// this is the aggregation
$classB->setClassA( $classA );
$classB->doStuffWithA();
unset($classB); // classA still exists

组合是指对象由另一个对象拥有。因此,如果所有者被销毁,两者都将被销毁。

class testB {

    private $classA;
    public function __construct() {
        $this->classA = new testA;
    }
    public function doStuffWithA() {
        $this->classA->doSomething();
    }
}
$classB = new testB; // new testA object is created
$classB->doStuffWithA();
unset($classB);  // both are destroyed

答案 1 :(得分:0)

你不能把语句放在这样的类中。声明$classA->doSomething()也必须在函数内部。