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

Closureクラス

PHP, Closureクラス, new演算子でインスタンスは生成できない

php

Closureクラスは無名関数の型として使われますが、クラスといえば new演算子でしょ? といっても過言じゃないインスタンスの生成ができません。

どうやら無名関数やクロージャ、アロー関数の戻り値以外では使われたくないらしい。

わざわざ __construct() で禁止にしているほどです。

続きを読む

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

php

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

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

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

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

続きを読む

PHPの無名関数とクロージャは同じ扱い。元々そう思ってる人は多いけど。

php

PHPでは無名関数とクロージャは同じものとして扱っています。無名関数の返すオブジェクトはClosureクラス。

これを見てもちがいはありません。

PHP公式ドキュメントを見ても、無名関数の説明の大半はクロージャについてで、無名関数のことを『クロージャ』と表現する箇所が多いです。

続きを読む