使用在类构造函数中在类方法中创建的对象
问题描述:
是否可以使用在该类的成员方法内的类构造过程中创建的对象?使用在类构造函数中在类方法中创建的对象
防爆
<?php
include ('AClass.php');
class Auto_Cart {
function Auto_Cart() {
$aclass = new AClass();
}
function DoSomething() {
$aclass->amemberfunction();
}
}
?>
当我打电话DoSomething的,它应该调用aclass-> amemberfunction()
我觉得我的语法是错误的,但也许这恰恰是不可能的。你能帮我吗?
谢谢!
答
您需要的AClass
实例存储作为成员变量的Auto_Cart
的实例(也称为“属性”)。
通过构造函数的风格假设PHP4
class Auto_Cart
{
/** @var $aclass AClass */
var $aclass;
function Auto_Cart()
{
$this->aclass = new AClass();
}
function DoSomething()
{
$this->aclass->amemberfunction();
}
}
的只是作为一个供参考,在面向对象的发言,我们称这种组成 - 这意味着一个对象创建并自动或存储到另一个对象的引用“懒洋洋”。
答
您需要存储对象的引用以便稍后使用它,因为当构造函数退出时它将会丢失。尝试把它作为你的Auto_Cart对象的成员,像这样:
<?php
include ('AClass.php');
class Auto_Cart {
function Auto_Cart() {
$this->aclass = new AClass();
}
function DoSomething() {
$this->aclass->amemberfunction();
}
}
?>
作为一个方面说明,它似乎你正在使用PHP 4;该版本不再被维护(甚至没有安全修复);如果可以的话,最好切换到PHP 5.x--如果你还没有在PHP 5上运行PHP 4代码,这也没关系^^ – 2009-07-20 17:31:16
我听到你的朋友:-)我的公司正在等待升级,因为他们担心他们的遗留代码无法在php5服务器上运行。 – Tyler 2009-07-20 19:45:34