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

Closure::bind()

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

php

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

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

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

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

続きを読む

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

php

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

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

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

続きを読む

PHP, Closureクラス, 外からクラス内の隠蔽したメソッドを実行できるんですけど?

php

本来、クラス内のprivateメソッドはクラス内の他メソッドでしか実行できません。クラスオブジェクトの外からは実行不可能。

でも、Closureクラスを使えばそれができます。

クロージャをクラスメソッドとしてあとで追加できる方法を利用すれば。

このクロージャはクラスの外に定義するのに、クラスメソッドと同じように動きます。

続きを読む