広告スペース(バナー)
🐘PHP レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 29 / 68
高階関数(関数を引数として渡す)
このレッスンでは、PHPの高階関数の考え方を学び、関数を引数として渡す柔軟なコードが書けるようになることを目標にします。「PHP 高階関数 usort 使い方」で調べている方向けです。
関数の引数として、別の関数を渡せることを高階関数と呼びます。「作業のやり方だけを指定して、実際の作業は相手に任せる」ようなイメージです。usort()に比較ルールを渡すのが代表例です。
サンプルコードでは、usort($nums, function ($a, $b) { return $b - $a; });という形で、独自の比較ルールを持つ無名関数をusort()に渡し、降順に並び替えています。これまで学んだarray_mapも、実は関数を引数として受け取る高階関数の一種です。
初心者がよくつまずくのが、比較関数の戻り値の意味です。負の数を返すと「aがbより前」、正の数を返すと「aがbより後」という並び替えのルールになり、この仕組みを理解していないと意図した並び順にならないことがあります。
自分で高階関数を定義できるようになると、共通の処理を部品化してコードの再利用性を高められます。PHPのモダンな書き方を支える重要な考え方の1つです。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではPHPを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
並び替えのルールを自由に切り替えられる、柔軟なソート処理が作れるようになります。
並び替えのルールを自由に切り替えられる、柔軟なソート処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)