Php, runkit, добавление нового метода -> apache вылетает

У меня есть абстрактный класс с методом, который я хочу вызвать:

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() это личное, все работает хорошо!

0 ответов

Другие вопросы по тегам