在线文档教程
PHP
类和函数 | Classes and Functions

runkit_method_redefine

runkit_method_redefine

(PECL runkit >= 0.7.0)

runkit_method_redefine - 动态更改给定方法的代码

描述

bool runkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] )

bool runkit_method_redefine ( string $classname , string $methodname , Closure $closure [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] )

注意:此函数不能用于操作当前正在运行的(或链接的)方法。

参数

classname

重新定义方法的类

methodname

要重新定义的方法的名称

args

重定义方法的逗号分隔参数列表

code

methodname调用时要评估的新代码

closure

定义方法的闭包。

flags

重新定义的方法可以是RUNKIT_ACC_PUBLICRUNKIT_ACC_PROTECTEDRUNKIT_ACC_PRIVATE任选地通过位或具有组合RUNKIT_ACC_STATIC(自1.0.1)

doc_comment

函数的doc评论。

返回值

成功返回TRUE或失败时返回FALSE

更新日志

描述
runkit 1.0.4期望封闭的另一种语法已被添加。
runkit 1.0.4可选参数doc_comment已添加。

例子

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!

← runkit_method_copy

runkit_method_remove →