关于PHP中类的构造问题

来源:百度知道 编辑:UC知道 时间:2024/04/30 10:39:25
我今天在编写PHP中的一个类时,遇到了一个麻烦。
在C++中,如果想初始化一个类,需要使用类的构造函数,而构造函数参数的不同可以有不同的构造函数来初始化类。而我在编写PHP类时,系统不让我写多一个构造函数。由于PHP没有变量之别,所以我认为是看变量的数量来确定调用哪个构造函数的。然而没有成功,请问该怎么办?

【zz】
PHP4中不支持。实现它的技巧是:

class Myclass {
function Myclass() {
$name="Myclass".func_num_args();
$this->$name();
//注意$this->$name()一般是错误的,但是在这里$name是一个将被调用方法的名字
}
function Myclass1($x) {
code;
}
function Myclass2($x,$y) {
code;
}
}

通过在类中的额外的处理,使用这个类对用户是透明的:

$obj1=new Myclass('1'); //将调用Myclass1
$obj2=new Myclass('1','2'); //将调用Myclass2

在PHP5中对于方法的重载可以使用magic method __call