使用类方法中类构造函数中创建的对象

时间:2009-07-20 16:16:44

标签: php oop syntax

是否可以在该类的成员方法中使用在类构造期间创建的对象?

实施例

<?php
include ('AClass.php');

class Auto_Cart {
    function Auto_Cart() {
       $aclass = new AClass();
    }

    function DoSomething() {
       $aclass->amemberfunction();   

    }
}
?>

当我调用DoSomething时,它应该调用aclass-&gt; amemberfunction()

我认为我的语法错了,但也许这是不可能的。你能救我一下吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

您需要将AClass的实例存储为Auto_Cart实例的成员变量(也称为“属性”)。

根据构造函数的风格假设PHP4

class Auto_Cart
{
    /** @var $aclass AClass */
    var $aclass;

    function Auto_Cart()
    {
       $this->aclass = new AClass();
    }

    function DoSomething()
    {
       $this->aclass->amemberfunction();
    }
}

仅仅作为一个FYI,在OOP中我们称之为组合 - 意味着一个对象自动或“懒惰地”创建并存储对另一个对象的引用。

答案 1 :(得分:1)

您需要存储对象的引用以便稍后使用它,因为它会在构造函数退出时丢失。尝试将其存储为Auto_Cart对象的成员,如下所示:

<?php
include ('AClass.php');

class Auto_Cart {
    function Auto_Cart() {
       $this->aclass = new AClass();
    }

    function DoSomething() {
       $this->aclass->amemberfunction();   

    }
}
?>