(PECL runkit >= 0.7.0)
runkit_method_redefine — Dynamically changes the code of the given method
$classname
   , string $methodname
   , string $args
   , string $code
   [, int $flags = RUNKIT_ACC_PUBLIC
  ] )Note: 此函数不能用来操作当前正常运行(或运行链上)的方法。
此函数是实验性的。 此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本扩展风险自担 。
classname
     The class in which to redefine the method
methodname
     The name of the method to redefine
args
     Comma-delimited list of arguments for the redefined method
code
     
       The new code to be evaluated when methodname
       is called
      
flags
     
       The redefined method can be
       RUNKIT_ACC_PUBLIC,
       RUNKIT_ACC_PROTECTED or
       RUNKIT_ACC_PRIVATE
      
Note:
This parameter is only used as of PHP 5, because, prior to this, all methods were public.
   成功时返回 TRUE, 或者在失败时返回 FALSE.
  
Example #1 runkit_method_redefine() example
<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}
// create an Example object
$e = new Example();
// output Example::foo() (before redefine)
echo "Before: " . $e->foo();
// Redefine the 'foo' method
runkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT_ACC_PUBLIC
);
// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>
以上例程会输出:
Before: foo! After: bar!