在 class 到 return 静态函数值中使用闭包

Using a Closure inside a class to return a static function value

我刚开始使用匿名函数,即闭包,我 运行 遇到了问题。我正在使用 Closure 在名为 Project 的 class 中调用 static function 到 return 另一个 class 调用了应用程序。下面是我的问题的简化版本

    class Project{

         public function __construct(){

             self::ProcessParams(function() {

                        return Application::return_param('1');

                    }, 'param2', 'param3');

              }
         }

         public static function ProcessParams($param1, $param2, $param3){

           var_dump($param1);

         }

    }

我的问题是 ProcessParams 函数中的 var_dump() 没有 return 请求的值,而是将整个项目 class 插入 $param1

object(Closure)#90 (1) { ["this"]=> object(Project)#34 (3) { ..... }

我做错了什么??

谢谢

您需要调用闭包才能检索它的return值:

var_dump($param1());

您可以从这里开始了解更多关于匿名函数的信息:http://php.net/manual/de/functions.anonymous.php