コールバック
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(['クラス名', 'メソッド名']);
といった形で呼ぶ事ができます。
こういった「コールバック」は、常時出てくる手法ではないのですが、ある程度以上のレベルのコードを書くと「時々出てくる」手法、になるので。
出てきた時に「………あったなぁ。どうやって書くんだっけ?」くらいには記憶をしておくと、色々と便利なのではないか、と思います。
この記事が気に入ったらサポートをしてみませんか?