web-dev-qa-db-ja.com

PHP Arrow Function Syntaxをサポートしていますか?

キーワードfunctionを何度も書くという激動のタスクについて文句を言った後、簡単な方法について誰かに尋ねました。その人は、PHPはes6に似た矢印関数構文を持つことになります。

const foo = (x, y) => {
    return x + y;
};

私がこれを調べ続けたとき、私はオンラインで多くの例を見つけることができませんでした。

適切な口径の誰かがこれについて詳しく説明してもらえますか?

この時点で、これがPHPのOOPの側面にどのように適合するかについても本当に興味があります。

20
0xf32

これは https://wiki.php.net/rfc/arrow_functions で説明されている構文のようです。実験的な実装があります。

矢印関数の提案では、「短いクロージャ」の提案の代替案であることが言及されています https://wiki.php.net/rfc/short_closures

2018年2月現在、PHPの現在のバージョンは7.1.4/7.2.2です。

いずれかの提案が承認されたことを確認できません。前者は「Under Discussion」状態にあり、後者は「 http://wiki.php.net/rfc/arrow_functions 」を支持して「Declined/Withdrawn」になっています。 PHPの将来のバージョンで採用されるかどうかを知るのは時期尚早だと思います。

25
Bill Karwin

はい。 PHP 7.4 https://wiki.php.net/rfc/arrow_functions_v2 の新しいRFCが受け入れられました

5
JR Stream

PHP 7.4のRFCに基づくコードは次のようになります

$users->map(
    fn($user) => $user->first_name.' '.$user->last_name
);

の代わりに

$users->map(function($user) {
    return $user->first_name.' '.$user->last_name;
});
0
Đorđe Zeljić