第二、ダイナミッククラスのメンバ関数で定義されたPHPのクラスのメンバ関数が定義されています

シナリオ:
1.動的負荷クラスメンバー(swooleフレームワークの一部、変更されたコードを使用すると、動的に複数のファイルに広がる機能ロードすることができ、サーバーを上書きする必要があります)
、彼は一人で拡張することができ、文書を開発するチームと2.書き込み回避の競合をファイル;
クラスのコード3あまり、複数のファイルに分解メンバ関数の一部。

<PHP?
クラスユーザー{
静的$のfuncs =配列();
静的関数EXT(方法$、$ FUNC){$ ::自己のfuncs [$方法] = $ FUNC;}
//メソッドを呼び出すは存在しない
(機能__callをFUNC $、$ argsを){
// //ファイル/extgo/class.func.ext.phpクラス名、関数名、ルールの定義をロードすることができ
(ISSET(自己:: $のfuncs場合は [$ funcを])) {
$ $ classFunc :: =自己のfuncs [$のFUNC];
返す$ classFunc($この);
}
"FUNC} {$方法は本当に保存されていません!"エコー;
}
/////// //////////////////////////他のいくつかの方法//////////////////// ///////////////
変数$ IDX = 0;
機能gotest(){
の$ this - > IDX ++;
エコー"user.test:{の$ this - > IDX} \ R&LT \ N-" ;
}

}
//方法1延びユーザクラスである
ユーザを:: EXT( '追加'、関数($ pThis){
エコー"Execの追加の\ R&LT \ N-";
$ pthis-> IDX ++;
$ pthis->(gotest)。
});

//ユーザークラス2 addメソッドの呼び出し
の$ C =新しい新しいユーザを();
$ C->は(追加)。

3 @も再び定義することができる
ユーザを:: EXT( '追加'、関数($ pThis){
エコー'ExecのADD2 \ R&LT \ N-';
$ pthis-> = 20 IDXであり;
$ pthis->(gotest);
} );

。メソッドを追加//ユーザークラス4を呼び出し、
$ C->()を追加します。

おすすめ

転載: blog.51cto.com/ewoosoft/2421473