【问题标题】:Laravel call static function based on varLaravel 基于 var 调用静态函数
【发布时间】:2016-09-12 05:53:24
【问题描述】:

好的,我确信有一个很好的方法可以做到这一点。但我被困住了。

基本上,我有一个“自定义处理程序”文件夹,用于在产品集上运行功能。文件夹(和命名空间)结构如下所示

HANDLERS
-MAIN
--Generate.php
--List.php
-THREAD
--Generate.php
--List.php
-TEST
--Generate.php
--List.php

“generate.php”和“list.php”内部是静态函数,它们都共享。在我的控制器中,我想根据模型的属性调用这些处理程序之一。比如:

\Handlers\$product->handler\Generate::go();

如果产品使用“线程”,它会调用

\Handlers\Thread\Generate::go();

有没有简单的方法可以做到这一点?

干杯!

【问题讨论】:

    标签: php laravel namespaces


    【解决方案1】:

    您可以使用call_user_func 调用动态类名上的方法,例如:

    <?php
    namespace MyPackage;
    
    class Foo
    {
        public static function bar()
        {
            echo 'Hello';
        }
    }
    
    $className = "\\MyPackage\\Foo";
    call_user_func([$className, 'bar']);
    

    【讨论】:

    • 啊哈,猜到这个了!我应该尝试一下,而不是想出一些独特的方法来处理这个问题。将在 5 分钟内接受 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2023-03-28
    • 2017-04-26
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多