[PHP]無名関数を定義して、即時実行したい場合は?

javascriptでは、オブジェクトの名前空間の問題により、無名関数を作ったうえで、作成した無名関数を即時実行したい場合が多くあります。
phpで同様の事を行いたい場合、どのような記述を行えばよいでしょうか?

php7.0以降の場合は、javascriptと同様に下記のコードで実行することもできます

<?php
(function() {
    echo 'hello world'; 
})();

php5.xのバージョンしか使えない場合は、上記のコードほどシンプルではありませんが、下記のコードで無名関数を即時実行可能です。

<?php
call_user_func(function() { 
    echo 'hello world'; 
});

上記のコードはphp7.0以降でも動作するため、古いバージョンのphpサポートも必要なライブラリを作っている場合などは、後者の方が良いかもしれません。

関連記事

コメントを残す

メールアドレスが公開されることはありません。