在类中使用Closure返回静态函数值

时间:2015-03-27 13:05:47

标签: php closures static-methods anonymous-function

我刚开始使用Anonymous功能,即Closures,我遇到了一个问题。我正在使用Closure在名为Project 的类中调用静态函数,以在另一个名为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

  

对象(关闭)#90(1){[" this"] =>对象(项目)#34(3){.....}

我做错了什么?

由于

1 个答案:

答案 0 :(得分:3)

你需要调用闭包才能检索它的返回值:

var_dump($param1());

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