如何将回调函数作为构造函数参数传递并分配给类属性

时间:2018-10-09 11:04:23

标签: php

我正在尝试做这样的事情:

首先,我创建身份类

class Identity {
    private $identity;

    public function __construct($identiy) {
        $this->identity = $identiy;
    }

    public function getIdentity($value) {
        return $this->identity($value);
    }
}

然后我创建该类的一个实例:

$identity = new Identity(function ($value){
    return "1";
});
echo $identity->identity(1);

在JavaScript中,我可以执行类似的操作,但是我不知道如何在PHP中执行此操作。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

以下是您需要的what的文档:

    $var = function() {
      return 'I am a ' . func_get_arg(0);
    };
    print_r($var('Closure'));

答案 1 :(得分:0)

您有2个问题:

  1. 您的财产是私人的,因此您需要使用getter来访问它。
  2. 没有identity方法会导致php错误输出。使用临时变量可以解决该问题。

    class Identity {
        private $identity;
    
        public function __construct($identiy) {
            $this->identity = $identiy;
        }
    
        public function getIdentity($value) {
            // Use a temporary variable for your function
            $func = $this->identity;
            return $func($value);
        }
    }
    
    
    $identity = new Identity(function ($value){
        return "1";
    });
    // Access the getter instead of the property
    echo $identity->getIdentity(1);
    

An example.