公開日:2021.11.26

PHPでのアロー関数

テクログ

こんにちは!福神漬けです。
欲しいものは好きなだけゲームをやっていい時間と体力です。

今回はPHPのアロー関数について書いていきます!

アロー関数とは

特にWEB系だとアロー関数という名前で有名なのがJavaScriptのアロー関数です。
ざっくりとした説明だと無名関数の書き方の一つで、既存の無名関数とも動作が変わります。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions

そしてPHPのアロー関数はJSより後に出ているのもあり書き方や役割が似ています。
似てはいますが微妙に使い勝手が違うのが気をつけるポイントです…
https://www.php.net/manual/ja/functions.arrow.php

マニュアルにあるとおり下記の関数二つは同じ動作をします。

$y = 1; 
$fn1 = fn($x) => $x + $y;

$fn2 = function ($x) use ($y) {
    return $x + $y;
};

どういう時便利か

JSと同じく簡単な処理をコールバックとして書くときにとても便利です。

$ary = [1,2,3,4,5];
$cutoffNum = 3;
$over3Ary = array_filter($ary,fn($v) => ($cutoffNum <= $v));

メリット

上記のようなシチュエーションで簡潔に書けます。
また大抵の場合use文を使うより可読性が上がります。

デメリット

逆にuse文を使わず変数が使えてしまうので、書こうと思えば変数10個くらい使った処理とかも書けてしまいます。
そんな読みづらいもの書くなという話ではありますが…

また関数の処理部分を1行しか書けずJSのアロー関数と比べて痒いところに手が届かないことがあります。
1行しか書けないので変なこと書きづらいという意図もある?かもしれませんが、
そもそもそういう人は1行に全部押し込みそうですね。

終わりに

今後のアップデートで複数行書けるようになりそうな雰囲気です!
そしたら使いやすくなりそうだなって思います。
https://zenn.dev/rana_kualu/articles/d03f1261ca879a32e6c2

お疲れ様でした!

この記事を書いた人

福神漬け

入社年2017年

出身地チーバくんの目のあたり

業務内容開発やりつつちょっと管理っぽい仕事

特技または趣味ゲームとゲームをしながらゲームをできること

福神漬けの記事一覧へ

テクログに関する記事一覧