跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如何实例化一个有命名空间的动态类?如下代码:
未分類
13 1 月 2021

如何实例化一个有命名空间的动态类?如下代码:

如何实例化一个有命名空间的动态类?如下代码:

資深大佬 : frozenway 0

namespace appindexmodel;  function custom($bcids, $param){     foreach($bcids as $custom){         $file = env('extend_path').'custom/'.$custom['module'].'.php';         if(file_exists($file)){             $res = custom$custom['module']::instance()->run();         }     } } 

类文件在 custom 目录下,现在这样会报错,如果变量换成这样

$res = customHello::instance()->run(); 

则不会报错,大神,求助该怎么写?

大佬有話說 (8)

  • 主 資深大佬 : frozenway

    是 TP5.1 的

  • 資深大佬 : Fishdrowned

    $res = “\custom\{$custom[‘module’]}”::instance()->run();

  • 資深大佬 : ben1024

    1.字符拼接 “{$xxx}”
    2.exec 执行脚本

  • 資深大佬 : jswh

    动态访问时基于字符串的,你可以简单的理解为编译器会先把字符替换到代码里,再执行代码,
    custom$custom[‘module’],这里的问题时不符合语法规范,namespace 不能后街变量。
    所以你得先搞出个完整的带 namespace 的类的字符串,然后再去调用。结果就是 2 。

  • 資深大佬 : jswh

    @jswh
    动态访问是基于字符串的,你可以简单的理解为编译器会先把字符替换到代码里,再执行代码,
    custom$custom[‘module’],这里的问题是不符合语法规范,namespace 不能后接变量。
    所以你得先搞出个完整的带 namespace 的类名的字符串,然后再去调用。结果就是 2 。

    ——-
    着急下班,一堆错字

  • 資深大佬 : rophie123

    PHP 牛逼

  • 資深大佬 : wjfz

    2 正解。
    我之前是这么弄的。

    $channelClass = “\common\services\sms\” . ucfirst($channel);
    if (!class_exists($channelClass)) {
    throw new NotFoundExceptions(“短信发送类{$channelClass}不存在”);
    }

  • 資深大佬 : zpfhbyx

    如何实例化一个有命名空间的动态类?如下代码:

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具