(PECL runkit >= 0.7.0)
runkit_method_redefine — 指定されたメソッドのコードを動的に変更する
$classname
   , string $methodname
   , string $args
   , string $code
   [, int $flags = RUNKIT_ACC_PUBLIC
  ] )注意: この関数は、 現在実行中(もしくはチェーンド)のメソッドを操作することはできません。
classnameメソッドを再定義するクラス。
methodname再定義するメソッドの名前。
argsカンマで区切られた、再定義後のメソッドの引数。
code
       methodname がコールされた際に
       評価される、新しいコード。
      
flags
       再定義するメソッドの型。
       RUNKIT_ACC_PUBLIC、
       RUNKIT_ACC_PROTECTED あるいは
       RUNKIT_ACC_PRIVATE のいずれか。
       1.0.1 以降では、ビット OR で
       RUNKIT_ACC_STATIC を組み合わせることも可能。
      
   成功した場合に TRUE を、失敗した場合に FALSE を返します。
  
例1 runkit_method_redefine() の例
<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}
// Example オブジェクトの作成
$e = new Example();
// Example::foo() の出力(再定義前)
echo "Before: " . $e->foo();
// 'foo' メソッドの再定義
runkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT_ACC_PUBLIC
);
// Example::foo() の出力(再定義後)
echo "After: " . $e->foo();
?>
上の例の出力は以下となります。
Before: foo! After: bar!