classkit_method_redefine
(PECL classkit:0.1-0.4 runkit:0.7-0.9)
classkit_method_redefine — Dynamically changes the code of the given method
Description
bool classkit_method_redefine
( string $classname
, string $methodname
, string $args
, string $code
[, int $flags
] )
Note: This function cannot
be used to manipulate the currently running (or chained) method.
WarningThis 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.
Parameters
-
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
Note:
This parameter is only used as of PHP 5, because, prior to this,
all methods were public.
Return Values
Returns TRUE on success or FALSE on failure.
Examples
Example #1 classkit_method_redefine() example
<?php
class Example {
function foo() {
return "foo!\n";
}
}
$e = new Example();
echo "Before: " . $e->foo();
classkit_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
CLASSKIT_ACC_PUBLIC
);
echo "After: " . $e->foo();
?>
The above example will output: