runkit_method_redefine
(PECL runkit >= 0.7.0)
runkit_method_redefine — Cambiar dinámicamente el código del método dado
Descripción
$classname
, string $methodname
, string $args
, string $code
[, int $flags = RUNKIT_ACC_PUBLIC
] )Nota: Esta función no puede ser utilizada para manipular el actual método en ejecución (o extendido).
Esta función ha sido declarada EXPERIMENTAL. Su comportamiento, su nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Use esta función bajo su propio riesgo.
Parámetros
-
classname -
La clase en la que se va a redefinir el método
-
methodname -
El nombre del método a redefinir
-
args -
Lista de argumentos delimitados por coma para el método redefinido
-
code -
El nuevo código a ser evaluado cuando
methodnamesea llamado -
flags -
El método redefinido puede ser
RUNKIT_ACC_PUBLIC,RUNKIT_ACC_PROTECTEDoRUNKIT_ACC_PRIVATENota:
Este parámetro sólo se usa a partir de PHP 5, ya que, antes de esta versión, todos los métodos eran públicos.
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Ejemplos
Ejemplo #1 Ejemplo de runkit_method_redefine()
<?php
class Ejemplo {
function foo() {
return "foo!\n";
}
}
// crear un objeto de Ejemplo
$e = new Ejemplo();
// imprimir Ejemplo::foo() (antes de redefinir)
echo "Antes: " . $e->foo();
// Redefinir el método 'foo'
runkit_method_redefine(
'Ejemplo',
'foo',
'',
'return "bar!\n";',
RUNKIT_ACC_PUBLIC
);
// imprimir Ejemplo::foo() (después de redefinir)
echo "Después: " . $e->foo();
?>
El resultado del ejemplo sería:
Antes: foo! Después: bar!
Ver también
- runkit_method_add() - Añadir dinámicamente un nuevo método a una clase dada
- runkit_method_copy() - Copia un método de una clase a otra
- runkit_method_remove() - Eliminar dinámicamente el método dado
- runkit_method_rename() - Cambiar dinámicamente el nombre del método dado
- runkit_function_redefine() - Reemplazar una definición de función con una nueva implementación