php - Laravel 基于var 调用静态函数

标签 php laravel namespaces

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

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

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

在'generate.php' 和'list.php' 中是静态函数,它们都共享。在我的 Controller 中,我想根据模型的属性调用这些处理程序之一。就像是:
\Handlers\$product->handler\Generate::go();

如果产品使用“线程”,它会调用
\Handlers\Thread\Generate::go();

是否有捷径可寻?

干杯!

最佳答案

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

<?php
namespace MyPackage;

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

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

关于php - Laravel 基于var 调用静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253960/

相关文章:

php mysqli 获取显示数组结果的数据但无法回显(显示 NULL)

php - 如何读取 Dc :creator tag in xml?

php - Laravel 在选择中选择计数

json - 在 Jersey 2.2 JAX-RS 下使用 JAXB 和 JSON 的命名空间

php - 如何使用php绕过XMPP Openfire服务器中的登录过程?

php - Laravel - 无法使用 storeAs 将文件保存到 public_path

Laravel 警告 : Unknown: failed to open stream: No such file or directory in Unknown on line 0

XML 模式导致没有 namespace 的 xml 元素

C++ - 'class' 类型重定义

php - 在 ubuntu 上安装 php70-gd