【问题标题】:Using a Closure inside a class to return a static function value在类中使用闭包返回静态函数值
【发布时间】:2015-05-31 19:47:04
【问题描述】:

我刚开始使用匿名函数,即闭包,我遇到了一个问题。我正在使用闭包在 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

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

我做错了什么??

谢谢

【问题讨论】:

标签: php closures static-methods anonymous-function


【解决方案1】:

你需要调用闭包来获取它的返回值:

var_dump($param1());

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多