0

我有一个带有我想要调用的方法的抽象类:

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()private,一切都很好

4

0 回答 0