runkit_function_redefine
(PECL runkit >= 0.7.0)
runkit_function_redefine — Заменяет определение функции новой реализацией.
Описание
$funcname
, string $arglist
, string $code
[, bool $return_by_reference = NULL
[, string $doc_comment = NULL
]] ) : bool$funcname
, Closure $closure
[, string $doc_comment = NULL
] ) : boolЗамечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.
Список параметров
-
funcname -
Имя заменяемой функции
-
arglist -
Новый список аргументов, принимаемый функцией
-
code -
Код новой функции
-
closure -
Функция определяющая замыкание (closure).
-
return_by_reference -
Должна ли функция возвращать результат по ссылке.
-
doc_comment -
Документирующий комментарий к функции.
Возвращаемые значения
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Список изменений
| Версия | Описание |
|---|---|
| runkit 1.0.4 |
Добавлен альтернативный синтаксис с использованием замыканий (closure).
|
| runkit 1.0.4 |
Были добавлены необязательные параметры return_by_reference и
doc_comment.
|
Примеры
Пример #1 Пример runkit_function_redefine()
<?php
function testme() {
echo "Старый код Testme\n";
}
testme();
runkit_function_redefine('testme','','echo "Новый код Testme\n";');
testme();
?>
Результат выполнения данного примера:
Старый код Testme Новый код Testme
Смотрите также
- runkit_function_add() - Добавляет новую функцию аналогично create_function
- runkit_function_copy() - Копирует функцию с новым именем
- runkit_function_rename() - Переименовывает функцию
- runkit_function_remove() - Удаляет определенную функцию
- runkit_method_redefine() - Изменяет код выбранного метода