(PECL runkit >= 0.7.0)
runkit_method_redefine — Cambiar dinámicamente el código del método dado
$classname
   , string $methodname
   , string $args
   , string $code
   [, int $flags = RUNKIT_ACC_PUBLIC
  ] ) : boolNota: Esta función no puede ser utilizada para manipular el actual método en ejecución (o extendido).
classnameLa clase en la que se va a redefinir el método
methodnameEl nombre del método a redefinir
argsLista de argumentos delimitados por coma para el método redefinido
code
       El nuevo código a ser evaluado cuando methodname
       sea llamado
      
flags
       El método redefinido puede ser
       RUNKIT_ACC_PUBLIC,
       RUNKIT_ACC_PROTECTED o
       RUNKIT_ACC_PRIVATE opcionalmente combinado mediante OR de bits con
       RUNKIT_ACC_STATIC (desde 1.0.1)
      
Nota:
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.
   Devuelve TRUE en caso de éxito o FALSE en caso de error.
  
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!