我有一个抽象类,其中包含我想要调用的方法:
abstract class KLASS
{
protected function pr()
{
return 'pr()';
}
}
由于我甚至无法实例化,我在其上创建了一个图层:
class KLASS2 extends KLASS
{
}
这样:
$a = new KLASS2();
runkit_method_rename ('KLASS', 'pr', 'pr_old');
runkit_method_add ('KLASS', 'pr', '', 'var_dump (method_exists($this, "pr")); var_dump (method_exists($this, "pr_old")); return $this->pr_old();', RUNKIT_ACC_PUBLIC);
echo $a->pr();
那我在做什么?我将旧的pr()
功能重命名为pr_old()
,然后添加一个具有公共访问权限的新pr()
。这个新的pr()
调用旧的pr()
例程,这会导致apache崩溃。请不要告诉我只是编辑课程,我必须保持所有课程不受影响。
最有趣的部分是,如果pr()
私有,则所有都可以正常工作!