有什么办法可以返回使用接口导入的函数吗?

阿卡迪·斯捷潘诺夫

我对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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有什么办法从闭包内部从函数返回吗?

有什么方法可以使接口中的方法使用 DAO 模式返回通用 List<> 吗?

有什么办法可以保留函数变量的返回类型?

有什么办法可以在组件外使用 props 吗?

有什么办法可以复杂地使用sendcmd吗?

我的函数不会返回任何值或打印任何输出。我的功能有问题吗?有什么办法可以搞定吗?

有什么办法可以为整个软件包导入python模块吗?

有什么办法可以指向引用吗?

有什么办法可以杀死线程吗?

有什么办法可以“打破”程序吗?

有什么办法可以延迟PaintComponent吗?

有什么办法可以翻译这个吗?

有什么办法可以在Android的Flutter应用程序中拦截“返回”键按下吗?

有什么办法可以从Retrofit注释处理器中“隐藏” Kotlin函数吗?

有什么方法可以在普通函数中使用 await 吗?

有什么办法可以将JavaScript函数从src文件夹导入到React组件之外

我可以在函数声明中使用现有类型/接口吗?

有什么方法可以返回R函数中定义的所有对象吗?

有什么办法可以欺骗std :: make_shared使用默认初始化吗?

有什么办法可以跳过使用JS的下一个活动吗?

有什么办法可以使用数组或其他方法在此处简化代码吗?

有什么办法可以使用python查找相对于矢量的标量值的导数吗?

有什么办法可以使用web.config转换进行“替换或插入”吗?

有什么办法可以将Cassandra datastax映射器与继承一起使用吗?

有什么办法可以使用android studio添加布局标签吗?

有什么办法可以迅速使用AVCaptureSession对象来逐帧获取图像吗?

有什么办法可以在Python多行字符串中使用变量吗?

有什么办法可以使用聚合从猫鼬的ObjectId中获取日期吗?

有什么办法可以在Windows上使用多个主机文件吗?