ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

無名関数

PHP8.1, 第一級callable, コールバックの指定がより簡潔で分かりやすくなった。

php

PHP8.1では新機能で『第一級 callable』が追加されました。最初聞いたときなんのこっちゃ?です。

内容を見るとなんてことない、コールバック指定の方法がよりかんたんに分かりやすくなりました。

コールバックとは実行可能な関数を変数に代入したり、関数のパラメータに渡して受け取った側で実行することです。

続きを読む

PHP, コールバックの記法。ぱっと見、関数を実行してることに気づかない。

php

コールバックとは、関数名の文字列から関数を実行する際の関数名文字列のことです。

PHPではstring型と配列型で指定するんですが、内部ではcallable型というコールバック専用の型に変換される。

見た目は文字列や配列に '()' を付けて関数が実行されるのがコールバックの不思議なところ。

続きを読む

PHP, Closureクラス, 無名関数(クロージャ)が返すオブジェクトの型

php

Closureクラスは、無名関数(クロージャ)が返すオブジェクトの型なんですが、その他にも便利な機能をもっています。

一番すごいのは、既存クラスを編集せずにメソッドを追加できることかな?

これだけ聞いてもなんのことか分からないと思うけど。

PHP8.1では新しいコールバックの記法にも使われてます。

続きを読む

PHP関数ってなんで'test'()でも実行できるの? いらんもの付けても動く何じゃそりゃの仕様。

php

ふつうプログラミングの関数は、test() のように記述して実行します。

しかしPHPでは、'test'(), "test"() でもまったく同じことができる。

クォーテーションがなくてもいいならいらないじゃん、ていう仕様なんですが、これの正体ははっきりしています。

続きを読む

PHP, Closure::call(), 一時的なバインドで無名関数の実行。'()'とはちがう。

php

Closureクラスは無名関数(クロージャ)、アロー関数の型として使用します。

そのオブジェクトは変数に代入して 『$test()』のように変数に '()' を付けて関数を実行しますが、もうひとつ、Closure::call()を使っても実行可能。

同じ無名関数の実行なんですが、根本的なちがいがある。

続きを読む