投稿

ラベル(usort)が付いた投稿を表示しています

[PHP] コールバック関数について

PHPのコールバック関数とは、呼び出し先関数の中でさらに呼び出される関数のことを言います。コールバック=「後で呼び出される」という意味があります。 ここではコールバック関数の基本的な使い方、無名関数を使った呼び出し、コールバック関数を使ったいくつかの例についてまとめていきます。 コールバック関数 実装例 コールバック関数はcallable型で定義され、呼び出された関数内で実行(コールバック)されます。 以下の例は一番簡単な例です。test_callback関数の引数にコールバックさせたい関数名を指定して、test_callback内でコールバックしています。 コード function test_function() { print __FUNCTION__ . "\n"; } function test_callback(callable $function) { $function(); } test_callback("test_function"); 実行結果 $ php test_callback.php test_function 無名関数で指定する実装例 callable型は以下のように無名関数で指定することも可能です。 コード function test_callback(callable $function) { $function(); } test_callback(function() { print __FUNCTION__ . "\n"; }); 実行結果 無名関数で指定した場合、関数名が無いので __FUNCTION__ は以下のように出力されます。 $ php test_callback.php {closure} array_map関数 配列の全要素に対して処理を行う array_map関数は配列の全要素に対して処理を行うための関数です。従来配列の全要素に対して処理を行う場合、for文やforeach文を使用して記述していましたが、これが簡潔に記述できるようになります。 なお、array_map関数は引数に指定した配列を直接変更するのではなく、処理した結果の配列を返します。