コールバック関数の使用:
PHPで関数をパラメーターとして使用するには、関数の名前を文字列として渡すだけで十分です。
array_map('my_function_name', $my_array);
関数が実際にクラスの静的メソッドである場合は、次のようにパラメーターとして渡すことができます。
array_map(array('my_class_name', 'my_method_name'), $my_array);
関数が実際にクラス内の非静的メソッドである場合は、次のようにパラメーターとして渡すことができます。
array_map(array($my_object, 'my_method_name'), $my_array);
コールバック関数の宣言:
あなたがグローバルな空間で宣言するならば、すべては世界で良くて明確です-誰にとっても。
別の関数内で宣言するとグローバルになりますが、親関数が初めて実行されるまで定義されずCannot redefine function my_callback_function
、親関数を再度実行するとエラーが発生します。
ラムダ関数/無名関数として宣言する場合は、表示/使用を許可する上位レベルのスコープ変数を指定する必要があります。
コールバックの呼び出し:
function my_api_function($callback_function) {
// PHP 5.4:
$callback_function($parameter1, $parameter2);
// PHP < 5.3:
if(is_string($callback_function)) {
$callback_function($parameter1, $parameter2);
}
if(is_array($callback_function)) {
call_user_func_array($callback_function, array($parameter1, $parameter2));
}
}