(PECL runkit7 >= 未知)
runkit7_method_redefine — 动态更改给定方法的代码
class_name
要重新定义方法的类
method_name
要重新定义的方法的名称
argument_list
重新定义方法的参数的逗号分隔列表
code
当调用 method_name
时要执行的新代码
closure
一个 闭包,它定义了方法。
flags
重新定义的方法可以是 RUNKIT7_ACC_PUBLIC
、RUNKIT7_ACC_PROTECTED
或 RUNKIT7_ACC_PRIVATE
,还可以通过按位 OR 与 RUNKIT7_ACC_STATIC
进行组合
doc_comment
方法的文档注释。
return_type
方法的返回值类型。
is_strict
该方法是否按照在包含 strict_types=1
的文件中声明的方式执行。
示例 #1 runkit7_method_redefine() 示例
<?php
class Example {
function foo() {
return "foo!\n";
}
}
// 创建一个 Example 对象
$e = new Example();
// 输出 Example::foo()(重新定义之前)
echo "Before: " . $e->foo();
// 重新定义 'foo' 方法
runkit7_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
RUNKIT7_ACC_PUBLIC
);
// 输出 Example::foo()(重新定义之后)
echo "After: " . $e->foo();
?>
上面的示例将输出
Before: foo! After: bar!