(PECL runkit7 >= Unknown)
runkit7_method_redefine — Cambiar dinámicamente el código del método dado
class_nameLa clase en la que redefinir el método
method_nameEl nombre del método a redefinir
argument_listLa lista de argumentos separados por comas para el método redefinido
code
El nuevo código a evaluar cuando method_name
es llamado
closureUna closure que define el método.
flags
El método redefinido puede ser
RUNKIT7_ACC_PUBLIC,
RUNKIT7_ACC_PROTECTED o
RUNKIT7_ACC_PRIVATE opcionalmente combinado mediante una operación bit a bit OU con
RUNKIT7_ACC_STATIC
doc_commentEl comentario de documentación del método.
return_typeEl tipo de retorno del método.
is_strict
Si el método se comporta como si fuera declarado en un archivo con strict_types=1
Ejemplo #1 Ejemplo de runkit7_method_redefine()
<?php
class Example {
function foo() {
return "foo!\n";
}
}
// crear un objeto Example
$e = new Example();
// muestra Example::foo() (antes de la redefinición)
echo "Before: " . $e->foo();
// Redefine el método 'foo'
runkit7_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
RUNKIT7_ACC_PUBLIC
);
// muestra Example::foo() (después de la redefinición)
echo "After: " . $e->foo();
?>El ejemplo anterior mostrará:
Before: foo! After: bar!