我对PHP相当陌生,所以我迷失了这个问题。
我有一个带有调度功能的索引文件。我想返回渲染功能或使用时导入的整个模块。
use function App\renders\deepRender\render as deepRendering;
use function App\renders\plainRender\render as plainRendering;
use App\renders\deepRender;
use App\renders\plainRender;
function getRenderMethod($renderType)
{
$renderers = [
"pretty" => deepRender, //or using deepRendering
"plain" => plainRender, //or using plainRendering
];
// i have tried returning it like that.
return $renderers[$renderType];
然后在其他地方,我会尝试
$renderer = getRenderMethod($renderType);
$renderer\render();
但这是行不通的。当$ renderers数组直接保留函数时,我也尝试过从cb运行函数。
return function ($ast) use ($renderers, $renderType) {
$renderer = $renderers[$renderType];
return $renderer($ast);
};
无论如何,有没有使用类就可以使这项工作吗?
对我有用的解决方案是:
use function App\renders\deepRender\render as deepRendering;
use function App\renders\plainRender\render as plainRendering;
function getRenderMethod($renderType)
{
$renderers = [
"pretty" => function ($ast) {
return deepRendering($ast);
},
"plain" => function ($ast) {
return plainRendering($ast);
},
];
return $renderers[$renderType];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句