PHP. Учебник. 2005

classkit_method_redefine

Пред.

След.

classkit_method_redefine

(PECL)classkit_method_redefine -- Dynamically changes the code of the given method

Описание

bool classkit_method_redefine ( string classname, string methodname, string args, string code [, int flags] )


Замечание: Эта функция не может быть

использована для влияния на работающие в данный момент (или цепные) методы.

Внимание
-Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ.

Поведение этой функции, ее имя и относящаяся к ней документация

могут измениться в последующих версиях PHP без уведомления.

Используйте эту функцию на свой страх и риск.

Список параметров

-

classname

- The class in which to redefine the method

methodname

- The name of the method to redefine

args

- Comma-delimited list of arguments for the redefined method

code

- The new code to be evaluated when methodname is called

flags

- The redefined method can be CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED or CLASSKIT_ACC_PRIVATE

Замечание: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

Возвращаемые значения

- Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

-

Пример 1. classkit_method_redefine() example

<?php
class Example {
function
foo() {
return
"foo!\n";
}
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
classkit_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
CLASSKIT_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

Результат выполнения данного примера:
Before: foo!

After: bar!