runkit_function_redefine
(PECL runkit >= 0.7.0)
runkit_function_redefine — Заменяет определение функции новой реализацией.
Описание
$funcname
, string $arglist
, string $code
)Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.
Список параметров
-
funcname
-
Имя заменяемой функции
-
arglist
-
Новый список аргументов, принимаемый функцией
-
code
-
Код новой функции
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Примеры
Пример #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() - Удаляет определенную функцию
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Изменение поведения PHP
- runkit
- Функция Runkit_Sandbox() - Класс Runkit Sandbox -- это виртуальная машина PHP
- Функция Runkit_Sandbox_Parent() - Класс анти-песочницы для Runkit
- runkit_class_adopt
- runkit_class_emancipate
- runkit_constant_add
- runkit_constant_redefine
- runkit_constant_remove
- runkit_function_add
- runkit_function_copy
- runkit_function_redefine
- runkit_function_remove
- runkit_function_rename
- runkit_import
- runkit_lint_file
- runkit_lint
- runkit_method_add
- runkit_method_copy
- runkit_method_redefine
- runkit_method_remove
- runkit_method_rename
- runkit_return_value_used
- runkit_sandbox_output_handler
- runkit_superglobals
Коментарии
Here is another example with a parameter:
<?php
function hello_world($word) {
echo "Original Hello World: $word\n</br>";
}
$helloWorld = 'echo "Redefined Hello World: $word\n</br>";';
hello_world('test1');
runkit_function_redefine('hello_world', '$word', $helloWorld);
hello_world('test2');
?>
Note to users: language constructs (eval, die, exit, isset, unset, echo etc.) which might be confused with functions, cannot be renamed or redefined even with runkit.internal_override.