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

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番目盧要素としてオブジェクトを 渡す代わりにクラス名を渡すことにより、オブジェクトのインスタンス を作成せずに渡すことができます。

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

<?php

// コールバックの簡単な例
function foobar() {
    echo
"hello world!";
}
call_user_func("foobar");

// コールバックメソッドの例
class foo {
  function
bar() {
    echo
"hello world!";
  }
}

// オブジェクトのインスタンスを生成せずにスタティッククラスのメソッドをコールする
call_user_func(array("foo", "bar"));

$foo = new foo;

call_user_func(array($foo, "bar")); // オブジェクトのメソッドをコール

?>