©
本文档使用
php中文网手册 发布
(PECL classkit >= 0.1)
classkit_method_redefine — Dynamically changes the code of the given method
$classname
, string $methodname
, string $args
, string $code
[, int $flags = CLASSKIT_ACC_PUBLIC
] )Note: 此函数不能用来操作当前正常运行(或运行链上)的方法。
此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 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
Note:
This parameter is only used as of PHP 5, because, prior to this, all methods were public.
成功时返回 TRUE , 或者在失败时返回 FALSE 。
Example #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 ();
?> 以上例程会输出:
Before: foo! After: bar!