PHP 回調函數


一、認識php回調函數
使用一個函數的時候,如果傳遞一個變量,不能解決多大問題,需要傳遞一個過程,改變函數的執行行爲。
簡而言之,就是使用函數,作爲另一個函數的參數。如:
系統函數usort() 通過用戶自定義的比較函數對數組進行排序。
語法
usort(array,myfunction);
參數
描述
array
必需。規定要進行排序的數組。
myfunction
可選。定義可調用比較函數的字符串。如果第一個參數小於等於或大於第二個參數,那麼比較函數必須返回一個小於等於或大於 0 的整數。
說明
usort() 函數使用用戶自定義的函數對數組排序。
註釋:如果兩個元素比較結果相同,則它們在排序後的數組中的順序未經定義。到 PHP 4.0.6 之前,用戶自定義函數將保留這些元素的原有順序。但是由於在 4.1.0 中引進了新的排序算法,結果將不是這樣了,因爲對此沒有一個有效的解決方案。
註釋:本函數爲 array 中的元素賦予新的鍵名。這會刪除原有的鍵名。

usort($arr,function($a,$b){
if($a == $b) return 0;
return ($a < $b)?-1:1;
})

//這裏傳遞的是匿名函數,需要php5.3版本以上支持。也可以傳遞變量函數,或者普通函數。

usort($arr,'funname');//函數名稱
usort($arr,array(new classname(),'funname'));//類中的方法
usort($arr,'array("classname","funname")');//類中的靜態方法

call_user_func_array("函數名", array("參數1""參數2"......));
用此方法可以實現參數個數不確定的回調函數,系統會自動的把參數1作爲函數的第一個參數,參數2作爲第二個參數,如果不夠,函數使用默認值,如果多了,自動過濾。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章