以前我们介绍过一些具有特殊意义的类方法,这些方法的名称都是以双下画线开始的(_),例如,_get()、_set()、_construct()和_destruct()。另一个示例就是_call()方法,在PHP中,该方法用来实现方法的重载。
方法的重载在许多面向对象编程语言中都是常见的,但是在PHP中却不是非常有用,因为我们习惯使用灵活的类型和(容易实现的)可选的函数参数。
要使用该方法,必须实现---call()方法,如下例所示:
public function -call($method,$P)
{
if ($method = = “display”) {
if (is-object($P[0])) {
$this->displayobject ($p[0]);
} else if(is-array($p[0])) {
$this->displayArray($p[0]);
} else {
$this->displayScalar($P[0]);
}
}
}