(PECL classkit >= 0.1)
classkit_method_redefine — Cambia dinámicamente el código del método dado
$classname
   , string $methodname
   , string $args
   , string $code
   [, int $flags = CLASSKIT_ACC_PUBLIC
  ] ) : boolNota: 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 funcionamiento, nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Utilícela bajo su propia responsabilidad.
classnameLa clase el la que se va a redefinir el método
methodnameEl nombre del método a redefinir
argsLista de argumentos separados por coma para el método redefinido
code
       El nuevo código a ser evaluado cuando methodname
       es llamado
      
flags
       El método redefinido puede ser
       CLASSKIT_ACC_PUBLIC,
       CLASSKIT_ACC_PROTECTED o
       CLASSKIT_ACC_PRIVATE
      
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 classkit_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'
classkit_method_redefine(
    'Ejemplo',
    'foo',
    '',
    'return "bar!\n";',
    CLASSKIT_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!