调用存储在静态属性中的匿名函数

时间:2013-12-03 21:05:36

标签: php class anonymous-function

所以我有点编码,我遇到了那个(见代码)

<?php
class Test {

    public static $cb = null;

    public static function run () {
        self::$cb = function () {
            print 'Hello World!' . "\n";
        };

        // self::$cb() throws fatal
        $f = self::$cb; $f(); // <--

    }
}

Test::run();
?>

正如你所看到的,对匿名函数的调用看起来非常愚蠢,而且我在质疑自己是否有更方便的解决方案。我使用Suhosin-Patch进行PHP 5.3.27。

2 个答案:

答案 0 :(得分:0)

您始终可以使用call_user_func

call_user_func(self::$cb);

DEMO

答案 1 :(得分:0)

哈,我只是瞎了 - &gt; __invoke()是我的朋友

self::$cb->__invoke()