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(); ?>
|
上の例の出力は以下となります: |