本文件中使用的偽類型

mixed

mixed 說明一個參數可以接受多種不同的(但並不必須是所有的)類型。

例如 gettype() 可以接受所有的 PHP 類型,str_replace() 可以接受字串和陣列。

number

number 說明一個參數可以是 integer 或是 float

callback

有些諸如 call_user_function()usort() 的函數接受會員自訂的函數作為一個參數。Callback 函數不僅可以是一個簡單的函數,它還可以是一個對象的方法,內含靜態類的方法。

一個 PHP 函數用函數名字串來傳遞。可以傳遞任何內建的或是會員自訂的函數,除了 array()echo()empty()eval()exit()isset()list()print()unset()

一個對象的方法以陣列的形式來傳遞,陣列的下標 0 指明物件名,下標 1 指明方法名。

對於沒有案例化為對象的靜態類,要傳遞其方法,將陣列 0 下標指明的對象名換成該類的名稱即可。

例子 11-13. 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'));
?>