我有以下代码,我正在尝试找到解决方案:
<?php
class t1 {
public $response = array();
public $request = array();
public function getRequest() {
return $this->request;
}
public function getResponse() {
return $this->response;
}
}
class t2 extends t1 {
public function run($f) {
$this->response = $f($this);
return $this;
}
}
$delegate = function($c)
{
// PLACEHOLDER
// This is the only place to update test code
// It's not allowed to modify any other section of this code
};
$t = new t2();
print_r(array("request" => $t->run($delegate)->getRequest(), "response" => $t->getResponse()));
?>
我假设$ delegate是一个动态函数。任何人都能指引我完成这件事。
我在PLACEHOLDER中的想法应该是:
答案 0 :(得分:0)
我假设$ delegate是一个动态函数。
是。 $delagate
是PHP Closure。
如果您将功能定义为:
$delegate = function($c)
{
};
并将其传递给$t->run
,然后$c
将成为$t
个实例。