2009-07-20 144 views
2

是否可以使用在该类的成员方法内的类构造过程中创建的对象?使用在类构造函数中在类方法中创建的对象

防爆

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

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

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

    } 
} 
?> 

当我打电话DoSomething的,它应该调用aclass-> amemberfunction()

我觉得我的语法是错误的,但也许这恰恰是不可能的。你能帮我吗?

谢谢!

+0

作为一个方面说明,它似乎你正在使用PHP 4;该版本不再被维护(甚至没有安全修复);如果可以的话,最好切换到PHP 5.x--如果你还没有在PHP 5上运行PHP 4代码,这也没关系^^ – 2009-07-20 17:31:16

+0

我听到你的朋友:-)我的公司正在等待升级,因为他们担心他们的遗留代码无法在php5服务器上运行。 – Tyler 2009-07-20 19:45:34

回答

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(); 
    } 
} 

的只是作为一个供参考,在面向对象的发言,我们称这种组成 - 这意味着一个对象创建并自动或存储到另一个对象的引用“懒洋洋”。

1

您需要存储对象的引用以便稍后使用它,因为当构造函数退出时它将会丢失。尝试把它作为你的Auto_Cart对象的成员,像这样:

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

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

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

    } 
} 
?> 
相关问题