phpにおけるフック関数&実装

1889 ワード

まずフック関数について理解できない方は、万一のブログ<フック関数を使う>http://www.cnblogs.com/del/archive/2008/02/25/1080825.htmlをご覧ください
本格的にスタート・・・
このようなプログラムがあれば、
function fun(){
fun1();
fun2();
}

まず、プログラムがfun 1()を実行した後にfun 2()を実行し、fun()を終了する.
しかし、関数にいくつかの変化をしたい場合は.たとえばfunは解析関数であり、後期に豊富な解析関数を提供することを望んでいますが、どの関数で解析するかは、プロファイルで構成したいと考えています.この時点でフックの力を発揮できます.
フック点Hをfunction fun(){}に加えて、Hという関数を実行する前に、フック関数を構成して、必要に応じて解析することができます.
例:
$h=config_item("parser_fun") ;//               
function fun($data){
global $h;
return $h();
}

それ以外に、PHPは文字列によって自分のクラスを提供して、それからクラスの1つの方法を呼び出して、いくつかのパラメータを伝達して、これらはPHPプログラムの編纂、および後期のメンテナンスの拡張のために、かなり堅固な基礎を築きました.クラスの実現方法は、大体以下の通りである.
$c=get_class_name(); //      
$m=get_method_name(); //
$k=$c->$m(); //