🗒️

Laracast学習メモ(その2)。ルーティングとヘルパー関数

2024/07/11に公開

Laracast学習中のメモ

はい、Laravel学習中です。Laracast(外部リンク)はこちら

今回はサクッとわからないことだけ調べました。ヘルパー関数だとかいうものの中で、 Arr::firstなるやつがいました。誰やねん言うことで、調べました。

この関数は配列に用いることが多い関数で、条件にマッチする最初の要素を取得してくれます。

不明なやつら

Arr:first

Laracastでは以下のようなコードで記述されました。

Route::get('/jobs/{id}', function ($id) {
    $jobs = [
            [
                'id' => 1,
                'title' => 'Director',
                'salary' => '$50,000'
            ],
            [
                'id'=> 2,
                'title' => 'Programmer',
                'salary' => '$10,000'
            ],
            [
                'id'=> 3,
                'title' => 'Teacher',
                'salary' => '$40,000'
            ],
    ];

    $job = Illuminate\Support\Arr::first($jobs, fn($job) => $job['id'] == $id);

    return view('job', ['job' => $job]);
});

簡潔に説明するとjobのIDがidのやつを取得しているのですが、Arr::firstなので最初に条件にマッチしたやつを取得してきます。まあ、一意の数字だからIDなので、これを例にしちゃうのもどうかと思うけど、IDが1のやつが複数あった場合、その中で最初に記述されているID1のやつを引っ張ってきます。なるほどね。

アロー関数

$job = Illuminate\Support\Arr::first($jobs, fn($job) => $job['id'] == $id);

fn($job) => $job['id']の部分はなに?

こいつはPHPのバージョンの途中で追加されたアロー関数っていう書き方。JSとかでもある短く書ける記法。

function($job) { ... }って言う書き方と変わらない。これを先述のArr:firstと組みわせて、条件にマッチしている要素を吐き出させてます。

Discussion