PHP:callback函數的使用
PHP 中有某些函數允許使用使用者定義的函數來作為參數,例如:call_user_func()、usort()。
如果想呼叫的是某物件的方法時,其參數則必須是一個包含兩個元素的陣列,index 為 0 的元素為欲呼叫其方法的物件變數,index 為 1 的元素則是方法名。
以下是使用的例子:
如果想呼叫的是某物件的方法時,其參數則必須是一個包含兩個元素的陣列,index 為 0 的元素為欲呼叫其方法的物件變數,index 為 1 的元素則是方法名。
以下是使用的例子:
<?php
// An example callback function
function my_callback_function() {
echo 'hello world!';
}
// An example callback method
class MyClass {
static 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'));
// Type 4: Static class method call (As of PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');
// Type 5: Relative static class method call (As of PHP 5.3.0)
class A {
public static function who() {
echo "A\n";
}
}
class B extends A {
public static function who() {
echo "B\n";
}
}
call_user_func(array('B', 'parent::who')); // A
?>
留言