首先對鈎子函數不理解的請看萬一的博客<使用鈎子函數>http://www.cnblogs.com/del/archive/2008/02/25/1080825.html
正式開始......
假如有這么一段程序:
function fun(){
fun1();
fun2();
}
首先程序執行完fun1()之后執行fun2()然后fun()結束。
但是,假如我們想對函數做一些變化。比如說,fun是一個解析函數,我們希望后期可以提供豐富的解析函數,而究竟用哪個函數解析,我們希望在配置文件中配置。這個時候就可以發揮鈎子的力量了。
我們可以在function fun(){}中加入一個掛鈎點H,然后再執行H這個函數之前,將鈎子函數配置好,我么就可以根據需要來解析了。
例如:
$h=config_item("parser_fun") ;//從配置文件中獲得相應的配置信息
function fun($data){
global $h;
return $h();
}
除此意外,PHP還可以根據字符串提供自己的類,然后調用類的一個方法,傳遞某些參數,這些就為PHP程序的編寫,以及后期的維護擴展奠定了,相當堅實的基礎。
類的實現方法,大致如下:
$c=get_class_name(); //獲得類的名字
$m=get_method_name(); //獲得方法的名字
$k=$c->$m(); //執行類的某一個方法