PHP7からクロージャーの即時呼び出しが可能に

(更新日: 2015/09/02)

しばらく前(と言っても確か今年)、PHP開発者MLにクロージャーがその場で呼び出せないのは不便だ、と書いた事があるのですが知らない間に追加されていました。

クロージャーをその場で呼び出すのはクロージャーを()で括って、関数のようにすればその場で実行されます。

とすると

が出力されます。(PHP 5.6などでは構文エラー)returnで戻り値を返せば普通に使えます。

これも戻り値として返って来たhelloを出力します。

便利になりました。

PHP 7.1用にはクロージャーの短縮表記が提案されていて、これは微妙かも、と思ったのですが意外に開発者MLでは好評です。PHP 7.1からは

と書けるようになるかも知れません。他の言語を見ると似たような構文は沢山実装されています。

構文の仕様がPHP的でないのでどうなるか判りませんが、もしかすると短縮表記クロージャーがPHP 7.1から利用できるかも知れません。

忙しい時はPHP開発MLを読んでいないので議論はあったのだと思います。しかし、UPGRADINGに記載がないのは問題ですね。

追記:コードから考えてみるとUniform Variable Syntaxで使えるようになったと思います。なので正確には記載がない訳ではないですね。

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です