Php/docs/function.runkit7-method-redefine

来自菜鸟教程
跳转至:导航、​搜索

runkit7_method_redefine

(PECL runkit7 >= Unknown)

runkit7_method_redefineDynamically changes the code of the given method


说明

runkit7_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT7_ACC_PUBLIC [, string $doc_comment = null [, string $return_type [, bool $is_strict ]]]] ) : bool

runkit7_method_redefine ( string $classname , string $methodname , Closure $closure [, int $flags = RUNKIT7_ACC_PUBLIC [, string $doc_comment = null [, string $return_type [, bool $is_strict ]]]] ) : bool

参数

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
closure
A closure that defines the method.
flags
The redefined method can be RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED or RUNKIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNKIT7_ACC_STATIC
doc_comment
The doc comment of the method.
return_type
The return type of the method.
is_strict
Whether the method behaves as if it was declared in a file with strict_types=1.


返回值

成功时返回 true, 或者在失败时返回 false


范例

Example #1 runkit7_method_redefine() example

<?phpclass 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' methodrunkit7_method_redefine(    'Example',    'foo',    ,    'return "bar!\n";',    RUNKIT7_ACC_PUBLIC);// output Example::foo() (after redefine)echo "After: " . $e->foo();?>

以上例程会输出:


Before: foo!
After: bar!

参见