PHP 手册
后退 |  | 前进

# runkit_method_redefine

(PECL)

runkit_method_redefine -- Dynamically changes the code of the given method

## 说明

bool runkit_method_redefine ( string classname, string methodname, string args, string code [, int flags] )

> 注: 本函数不能被用来操作当前正在运行（或运行链上）的方法。

警告
本函数是实验性的。本函数的行为，包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 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`

  > 注: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

## 返回值

如果成功则返回 `TRUE`，失败则返回 `FALSE`。

## 范例

例子 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!

## 参见

runkit_method_add()
runkit_method_copy()
runkit_method_remove()
runkit_method_rename()
runkit_function_redefine()

后退 | 起点 | 前进
runkit_method_copy | 上一级 | runkit_method_remove