PHP callback函数使用方法和注意事项
在PHP中有些诸如call_user_function()或usort()的函数接受用户自定义的函数作为一个参数。Callback函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。
一个PHP函数用函数名字符串来传递。您可以传递任何内建的或者用户自定义的函数,除了array(),echo(),empty(),eval(),exit(),isset(),list(),print()和unset()。
一个对象的方法以数组的形式来传递,数组的0下标指明对象名,下标1指明方法名。
对于没有实例化为对象的静态类,要传递其方法,将数组0下标指明的对象名换成该类的名称即可。
Callback函数实例:
<?php
//Anexamplecallbackfunction
functionmy_callback_function(){
  echo'helloworld!';
}
//Anexamplecallbackmethod
classMyClass{
  functionmyCallbackMethod(){
      echo'HelloWorld!';
  }
}
//Type1:Simplecallback
call_user_func('my_callback_function');
//Type2:Staticclassmethodcall
call_user_func(array('MyClass','myCallbackMethod'));
//Type3:Objectmethodcall
$obj=newMyClass();
call_user_func(array($obj,'myCallbackMethod'));
?>
http://www.phpe.net/manual/language.pseudo-types.php
http://cn.php.net/manual/en/language.pseudo-types.php
