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