(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!