有些诸如 call_user_function() 或 usort() 的函数接受用户自定义的函数作为一个参数。Callback 函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。
一个 PHP 函数用函数名字符串来传递。您可以传递任何内建的或者用户自定义的函数,除了
array(),
echo(),
empty(),
eval(),
exit(),
isset(),
list(),
print() 和
unset()。
一个对象的方法以数组的形式来传递,数组的 0 下标指明对象名,下标 1 指明方法名。
对于没有实例化为对象的静态类,要传递其方法,将数组 0 下标指明的对象名换成该类的名称即可。
例子 6-11.
Callback 函数实例
<?php
// simple callback example function my_callback_function() { echo "hello world!"; } call_user_function("my_callback_function");
// method callback examples class MyClass { function myCallbackMethod() { echo "hello world!"; } } // static class method call without instantiating an object call_user_func(array('MyClass', 'myCallbackMethod')); // object method call $obj = new MyClass(); call_user_func(array(&$obj, 'myCallbackMethod')); ?>
|
|