(PECL classkit >= 0.1)
classkit_method_redefine — Dynamically changes the code of the given method
$classname
, string $methodname
, string $args
, string $code
[, int $flags
= CLASSKIT_ACC_PUBLIC
] )Зауваження: This function cannot be used to manipulate the currently running (or chained) method.
This function is EXPERIMENTAL. The behaviour of this function, its name, and surrounding documentation may change without notice in a future release of PHP. This function should be used at your own risk.
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!