在PHP中有些諸如 call_user_function() 或 usort() 的函數接受用戶自定義的函數作為一個參數。Callback 函數不僅可以是一個簡單的函數,它還可以是一個對象的方法,包括靜態類的方法。
一個 PHP 函數用函數名字符串來傳遞。您可以傳遞任何內建的或者用戶自定義的函數,除了 array(), echo(), empty(), eval(), exit(), isset(), list(), print() 和 unset()。
一個對象的方法以數組的形式來傳遞,數組的 0 下標指明對象名,下標 1 指明方法名。
對於沒有實例化為對象的靜態類,要傳遞其方法,將數組 0 下標指明的對象名換成該類的名稱即可。
Callback 函數實例:
復制代碼 代碼如下:
<?php
// An example callback function
function my_callback_function() {
echo 'hello world!';
}
// An example callback method
class MyClass {
function myCallbackMethod() {
echo 'Hello World!';
}
}
// Type 1: Simple callback
call_user_func('my_callback_function');
// Type 2: Static class method call
call_user_func(array('MyClass', 'myCallbackMethod'));
// Type 3: Object method call
$obj = new MyClass();
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