一、认识php回调函数
使用一个函数的时候,如果传递一个变量,不能解决多大问题,需要传递一个过程,改变函数的执行行为。
简而言之,就是使用函数,作为另一个函数的参数。如:
系统函数usort() 通过用户自定义的比较函数对数组进行排序。
语法
usort(array,myfunction);
说明
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作为第二个参数,如果不够,函数使用默认值,如果多了,自动过滤。