首先:不要这样做。
也就是说,如果你真的需要“refedine”一类,你可以使用一个包装类这样做
<?php
class foo { //Original definition here };
class bar {
var $baseobj;
function bar($some, $args) {
$this->baseobj=new $which($some, $args);
}
function someMethod() {
return $this->baseobj->someMthod();
}
//...
}
class baz {
function someMethod() {
return "This is the result";
}
//...
}
$obj=new bar($this, $that);
//$obj is now a wrapped foo object
echo $obj->someMethod(); //Will call into foo
$obj->baseobj=new baz($this, $that);
//$obj is now a wrapped baz object
echo $obj->someMethod(); //Will call into baz
?>
还是那句话:不要没有一个非常,非常充分的理由这样做!
免责声明:这个实现不仅仅是粗糙的,它只是运输这个想法的必要条件。
嗯,好了那是因为你不应该这样做。类和函数应该有唯一的名称。 – thatidiotguy
你不能。就像你不能重新定义一个函数一样。无论如何,你为什么要这么做?如果您需要使用不同代码“重用”函数名称,请改为使用闭包。 –
为什么?你为什么还想要? –