(PECL runkit7 >= Unknown)
runkit7_method_redefine — Динамически изменяет код заданного метода
class_name
Класс, в котором нужно переопределить метод.
method_name
Имя метода, который нужно переопределить.
argument_list
Разделённый запятыми список аргументов для переопределённого метода.
code
Новый код, который будет выполняться
при вызове method_name
.
closure
Замыкание (closure), определяющее метод.
flags
Переопределённый метод может быть
RUNKIT7_ACC_PUBLIC
,
RUNKIT7_ACC_PROTECTED
или
RUNKIT7_ACC_PRIVATE
, и, при необходимости,
объединён с помощью побитового ИЛИ с
RUNKIT7_ACC_STATIC
.
doc_comment
Документальный комментарий метода.
return_type
Тип возвращаемого значения метода.
is_strict
Определяет, будет ли метод вести себя так,
как если бы он был объявлен в файле с strict_types=1
.
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Пример #1 Пример использования runkit7_method_redefine()
<?php
class Example {
function foo() {
return "foo!\n";
}
}
// создание объекта Example
$e = new Example();
// вывод Example::foo() (до переопределения)
echo "До: " . $e->foo();
// Переопределение метода 'foo'
runkit7_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
RUNKIT7_ACC_PUBLIC
);
// вывод Example::foo() (после переопределения)
echo "После: " . $e->foo();
?>
Результат выполнения приведённого примера:
До: foo! После: bar!