PHPにおけるクロージャはstatic function()
やstatic fn()
といったstaticキーワードを付ける事ができますが、そのstaticの有用性について教えてください。
PHPのリファレンスを見ると下記のように書かれていますが、自分には$this
が使えるか否か程度にしか思えず、staticで制限することによるメリットが思いつきません。
他にどういった差があるのでしょうか。
https://www.php.net/manual/ja/functions.anonymous.php#functions.anonymous-functions.static
static を付けて無名関数を宣言することができます。 こうすることで、現在のクラスが無名関数を自動的にバインドすることがなくなります。 オブジェクトも、実行時にはバインドされなくなります。
また、自分が携わっているプロジェクトの既存コードの例に従って、割と考えなしにパフォーマンスの点で有利なのかなと思って、あらゆるクロージャにstaticを付けているのですが、基本的に付けるのが得策なのでしょうか?
ちなみにほぼすべて下記のような使い捨てのクロージャしか存在しません。
php
1$result = array_map(static fn(int $item) => $item * 10, $arr);
可能であればstaticを付けるべきケース、そうでないケースについてそれぞれ例を挙げていただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/02/09 09:26