(PECL classkit:0.1-0.4 runkit:0.7-0.9)
classkit_method_redefine — Dynamically changes the code of the given method
Note: Denne funktion kan ikke blive brugt til at manipulere en kørende (eller kædet) method.
Denne funktion er EKSPERIMENTABEL. Virkemåden af denne funktion, navnet på funktionen, og andet ellers dokumenteret om denne funktion, ændres muligvis uden advarsel i en fremtidig version af PHP. Brug af denne funktion er på ejet ansvar.
The class in which to redefine the method
The name of the method to redefine
Comma-delimited list of arguments for the redefined method
The new code to be evaluated when methodname is called
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.
Returnerer TRUE ved succes, FALSE ved fejl.
Example#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();
?>
Ovenstående eksempel vil udskrive:
Before: foo! After: bar!