2 回答
TA贡献1824条经验 获得超6个赞
这可以是解决方案之一。首先将函数名称存储在变量中,然后使用它。
while (!$template) {
$temp=$functions[$i];
$template = $this->$temp($name,$values);
++$i;
}
TA贡献1906条经验 获得超3个赞
我不确定这是否是最优雅的解决方案,但它会起作用:
protected function getobjectTemplate($name, $value)
{
$template = false;
$functions = [
'getObjectFormClientTemplate',
'getObjectFormTemplate',
'getObjectAirformTemplate',
'getTypeAirformTemplate',
'getAirfileTemplate',
'getTextAirformTemplate',
];
$i = 0;
while (!$template) {
$func = [ $this, $functions[$i] ];
$template = $func($name, $value);
++$i;
}
return $template;
}
我可能还会继续删除该while (!template)条件,因为它有可能使您的代码进入无限循环。可能使用更好的条件,$i < count($functions)例如:
$i = 0;
$funcCount = count($functions);
while(!$template && $i < $funcCount){
# ...
++$i;
}
此外,您仅返回通过 调用的所有函数的最后一个值return $template。如果您只需返回最后一个值,为什么不只调用所需的函数而不使用循环呢?不确定循环是否是最好的方法。如果您提供代码的更多详细信息,将会有所帮助。
- 2 回答
- 0 关注
- 95 浏览
添加回答
举报