そのまんま!

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

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'));
?>

注意: PHP4 では、実際のオブジェクトを指すコールバックを作成するには 参照を使用する必要があります。そのコピーを使用してはいけません。 詳細は 参照についての説明 を参照ください。

void

返り値の型が void である場合は、 返り値に意味がないことを表します。パラメータ一覧で void が使用されている場合は、 その関数がパラメータを受け付けないことを表します。