コールバック

PHPでは、コールバック( http://php.net/manual/ja/language.types.callable.php )というものがあります。
関数の定義で、型の所にcallback またはcallable と書かれているものですね。

例えば、usort( http://php.net/manual/ja/function.usort.php )やset_error_handler( http://php.net/manual/ja/function.set-error-handler.php )、call_user_func_array( http://php.net/manual/ja/function.call-user-func-array.php )など、が上げられます。

これらの引数にある「callable (callback )」は、割と色々な指定の仕方が出来るので、その当たりを少し、押さえておきましょう。

まず「関数名を文字列で渡す」事ができます。

call_user_func('関数名'); 

また、無名関数を直接渡す事もできます。

call_user_func( function() {
    // 処理
}); 

また、関数以外にクラスを渡す事もできて。
「このインスタンスでこのメソッドを呼ぶ」場合は

$obj = new クラス名();
call_user_func([$obj, 'メソッド名']);

「この静的クラスメソッドを呼ぶ」場合は

call_user_func(['クラス名', 'メソッド名']);

といった形で呼ぶ事ができます。

こういった「コールバック」は、常時出てくる手法ではないのですが、ある程度以上のレベルのコードを書くと「時々出てくる」手法、になるので。

出てきた時に「………あったなぁ。どうやって書くんだっけ?」くらいには記憶をしておくと、色々と便利なのではないか、と思います。

この記事が気に入ったらサポートをしてみませんか?