(PECL classkit >= 0.1)
classkit_method_redefine — Dynamically changes the code of the given method
$classname
   , string $methodname
   , string $args
   , string $code
   [, int $flags = CLASSKIT_ACC_PUBLIC
  ] ) : boolNote: 此函数不能用来操作当前正常运行(或运行链上)的方法。
此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担。
classnameThe class in which to redefine the method
methodnameThe name of the method to redefine
argsComma-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
       CLASSKIT_ACC_PUBLIC,
       CLASSKIT_ACC_PROTECTED or
       CLASSKIT_ACC_PRIVATE
      
Note:
This parameter is only used as of PHP 5, because, prior to this, all methods were public.
   成功时返回 TRUE, 或者在失败时返回 FALSE。
  
Example #1 classkit_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
classkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    CLASSKIT_ACC_PUBLIC
);
// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>
以上例程会输出:
Before: foo! After: bar!