classkit_method_redefine
(PECL)
classkit_method_redefine -- Dynamically changes the code of the given method
说明
bool
classkit_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
CLASSKIT_ACC_PUBLIC
,
CLASSKIT_ACC_PROTECTED
or
CLASSKIT_ACC_PRIVATE
注:
This parameter is only used as of PHP 5, because, prior to this,
all methods were public.
返回值
如果成功则返回
TRUE
,失败则返回
FALSE
。
范例
例子 1.
classkit_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
classkit_method_redefine
(
'Example'
,
'foo'
,
''
,
'return "bar!\n";'
,
CLASSKIT_ACC_PUBLIC
);
// output Example::foo() (after redefine)
echo
"After: "
.
$e
->
foo
();
?>
|
上例将输出:
|