本ドキュメントにおける疑似的な型

mixed

mixed は、引数に多様な型 (全てである必要はない) を使うことができることを示します。

例えば gettype() 関数は全ての PHP の型を受け入れるのに対し、 str_replace() は文字列と配列のみを受け入れます。

number

number は引数が integer または float のどちらでもよいことを示します。

callback

call_user_func()usort() 等の関数は、ユーザが定義するコールバック関数を引数として受け入れます。 コールバック関数は、単純な関数だけでなく、オブジェクトのメソッド あるいはクラスの静的メソッドであってもかまいません。

PHP 関数はその名前を単に文字列として渡されます。 どのようなビルトインまたはユーザ定義の関数も渡すことができます。 ただし下記を除きます。 array(), echo(), empty(), eval(), exit(), isset(), list(), print() unset().

オブジェクトのインスタンスを作成するための方法の 1 つは、 オブジェクトを 0 番目の要素、 メソッド名を 1 番目の要素として含む配列を渡す方法です。

静的なクラスメソッドの場合、 0 番目の要素としてオブジェクトを渡す代わりにクラス名を渡すことにより、 オブジェクトのインスタンスを作成せずに渡すことができます。

一般的なユーザ定義関数とは異なり、create_function() では無名コールバック関数を作成することができます。

例 11-13. コールバック関数の例

<?php
// コールバック関数の例
function my_callback_function() {
    echo
'hello world!';
}

// コールバックメソッドの例
class MyClass {
    function
myCallbackMethod() {
        echo
'Hello World!';
    }
}

// タイプ 1: 単純なコールバック
call_user_func('my_callback_function');

// タイプ 2: スタティッククラスメソッドのコール
call_user_func(array('MyClass', 'myCallbackMethod'));

// タイプ 3: オブジェクトメソッドのコール
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
?>