我有一个具有$action
变量的类,它接受一个可调用的值。通常,在初始化此值时,我可以执行以下操作:
$this->action = function() {
echo "My function";
}
然后我会通过这样做来调用函数:
$this->action();
课程本身如下:
<?php
/**
* Resolves an non-callable action
*/
class ActionResolver
{
private $action;
/**
* Action constructor.
*
* @param string $action
*/
public function __construct($action)
{
$this->action = $action;
}
public function resolve()
{
$actionResolver = new ActionResolver();
$results = ...
$this->action = $actionResolver->resolveCallable($results);
}
/**
* @return callable
*/
public function getAction()
{
return $this->action;
}
}
在resolveCallable()
函数中,应该通过$results
变量的结果通过另一个对象的方法来解析该操作。此方法位于ActionResolver
类中。该方法如下所示:
public function resolveCallable(array $results)
{
$class = $results[0];
$method = null;
if (isset($results[1])) {
$method = ...
}
$object = new $class;
if (!is_null($method)) {
return $class->$method();
}
return function() {};
}
通过取自$results
变量的字符串解析方法和类。类和方法名称都有效且有效。
当我尝试调用它时,它返回方法的返回值,但不返回方法本身。
如何在不调用方法的情况下返回方法本身而不是方法的内容?
答案 0 :(得分:0)
只需返回价值。
相反
SELECT *
FROM dbo.Table1
WHERE id Table1.IN ( SELECT table2.id
FROM dbo.table2 )
OR Table1.id IN ( SELECT table3.id
FROM Table3 )
使用
return $class->$method();