アロー関数とも呼ばれる短いクロージャは、PHP で短い関数を記述する方法です。この表記は、array_map や array_filter などの関数にクロージャを渡すときに便利です。
これらは次のようになります:
// A collection of Post objects $posts = [/* … */]; $ids = array_map(fn($post) => $post->id, $posts);
その前は、次のように記述する必要がありました:
$ids = array_map(function ($post) { return $post->id; }, $posts);
短いクロージャの使用方法をまとめてみましょう。
# PHP 7.4 以降で使用可能
# fn キーワードで始まります
# 式は 1 つだけ含めることができ、return ステートメント
# return ステートメントキーワードは許可されていません
#● パラメータと戻り値の型は型ヒントにすることができます上記の例をより厳密に型指定して記述する方法は、次のようになります。$ids = array_map(fn(Post $post): int => $post->id, $posts);あと 2 つ挙げておきます。 : # スプレッド演算子が許可されます # 参照が許可され、両方のパラメータを戻り値として使用できます 値を参照によって返したい場合は、次の構文を使用する必要があります:
fn&($x) => $xつまり、短いクロージャは、式を 1 つだけ許可することを除いて、通常のクロージャと同じ機能を持ちます。
# 複数行は禁止
そのとおりです。短いクロージャには式を 1 つだけ含めることができます。つまり、複数行を含めることはできません。 理由は次のとおりです: 短いクロージャの目的は、冗長性を減らすことです。もちろん、fn はどの場合でも function よりも短くなります。ただし、RFC の作成者 Nikita Popov は、複数行の関数を扱う場合、短いクロージャを使用しても得られるメリットは少ないと考えています。 結局のところ、複数行のクロージャは定義上すでに冗長であるため、2 つのキーワード (function と return) をスキップできても大きな違いはありません。 この見解に同意するかどうかはあなた次第です。私のプロジェクトには単一行のクロージャがたくさんあると思いますが、複数行のクロージャもたくさんあります。そのような場合、私は個人的に短い構文を見逃します。 ただし、希望はあります。将来的には短い複数行のクロージャを追加できる可能性がありますが、これは単なる RFC です。# 外部スコープからの値
短いクロージャと通常のクロージャのもう 1 つの大きな違いは、短いクロージャではアクセスするために use キーワードが必要ないことです。外部スコープのデータにアクセスします。$modifier = 5; array_map(fn($x) => $x * $modifier, $numbers);外部スコープ内の変数は変更できないことに注意してください。値は値に束縛され、参照に束縛されません。これは、外側のスコープ内の $modifier 変数には影響しませんが、短いクロージャ内で $modifier を変更できることを意味します。 もちろん、1 つの例外は $this キーワードで、これは通常のクロージャとまったく同じように機能します。
array_map(fn($x) => $x * $this->modifier, $numbers);##将来の可能性
#I複数行のショート クロージャについてはすでに述べましたが、これは将来的にも可能性があります。
もう 1 つのアイデアは、クラス内でゲッターやセッターなどの短いクロージャ構文を許可することです。class Post { private $title; fn getTitle() => $this->title; }全体として、短いクロージャは歓迎すべき機能ですが、まだ改善の余地があります。最大のものはおそらく複数行の短いクロージャーです。
翻訳: https://stitcher.io/blog/short-closures-in-php
以上がPHP 7.4 のアロー関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
