在类内部使用闭包来返回静态函数值


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

我刚开始使用匿名函数,即闭包,我遇到了一个问题。我正在使用闭包调用名为Project的类中的static函数,以在另一个名为Application中返回值。下面是我的问题的简化版本

    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()没有返回请求的值,而是将整个Project类插入$param1

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

我做错了什么??

感谢

您需要调用闭包以检索其返回值:

var_dump($param1());

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