Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于var的Laravel调用静态函数_Php_Laravel_Namespaces - Fatal编程技术网

Php 基于var的Laravel调用静态函数

Php 基于var的Laravel调用静态函数,php,laravel,namespaces,Php,Laravel,Namespaces,好的,我相信有一个很好的方法。但是我被卡住了 基本上,我有一个“自定义处理程序”文件夹,在一组产品上运行函数。文件夹(和命名空间)结构如下所示 HANDLERS -MAIN --Generate.php --List.php -THREAD --Generate.php --List.php -TEST --Generate.php --List.php “generate.php”和“list.php”中包含静态函数,它们都共享这些函数。在我的控制器中,我想根据模型的属性调用其中一个处理程序

好的,我相信有一个很好的方法。但是我被卡住了

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

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();
有没有一个简单的方法可以做到这一点


干杯

您可以使用
call\u user\u func
对动态类名调用方法,例如:

<?php
namespace MyPackage;

class Foo
{
    public static function bar()
    {
        echo 'Hello';
    }
}

$className = "\\MyPackage\\Foo";
call_user_func([$className, 'bar']);

您可以使用
call\u user\u func
调用动态类名上的方法,例如:

<?php
namespace MyPackage;

class Foo
{
    public static function bar()
    {
        echo 'Hello';
    }
}

$className = "\\MyPackage\\Foo";
call_user_func([$className, 'bar']);

啊,我猜到了!我应该试一下,而不是想一些独特的处理方法。将在5分钟内接受:)啊,我猜到了!我应该试一下,而不是想一些独特的处理方法。将在5分钟内接受:)