带有动态类名的 PHP 命名空间

2023-12-02

想知道其他人在使用 PHP 5.3 命名空间类的新功能时是否遇到过这个问题。

我正在生成一个动态类调用,利用一个单独的类来定义应用程序中的用户类型。基本上,类定义器采用类型的整数表示形式并解释它们,返回一个包含类名的字符串,该类名将被称为该用户的模型。

我有一个用户类型的对象模型,其名称在全局范围内定义,但在编辑器命名空间中,我有另一个与用户编辑器同名的对象。由于某种原因,PHP 不允许我进行命名空间动态调用,如下所示。

$definition = Definer::defineProfile($_SESSION['user']->UserType);
new \Editor\$definition();

相同的语法适用于在全局命名空间中调用全局基本对象模型,并且我在整个应用程序中可靠地使用这种方式。

$definition = Definer::defineProfile($_SESSION['user']->UserType);
new $definition();

这将正确调用动态所需的类。

是否有原因导致两者的行为不同,或者由于这是一项新功能,因此该庄园尚未实现命名空间的动态调用?是否有另一种方法可以从另一个名称空间动态调用类,而无需在代码中显式放置其名称,而是从变量中调用?


好吧,只需拼出字符串中的名称空间即可:

$definition = Definer::defineProfile($_SESSION['user']->UserType);
$class = '\\Editor\\' . $definition;
$foo = new $class();

如果它是子命名空间(如注释中所示),只需在命名空间前面加上__NAMESPACE__:

$class = __NAMESPACE__ . '\\Editor\\' . $definition;

所以如果当前的命名空间是\Foo\Bar, and $definition是“Baz”,结果类将是\Foo\Bar\Editor\Baz

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有动态类名的 PHP 命名空间 的相关文章

  • 当存在联系时如何为数组分配排名号

    当尝试为数组中存在平局的数值分配排名时 我很难知道从哪里开始 因此 例如 我需要像下面这样转换一个数组 myarray 4 76 34 13 34 到另一个数组中 例如 myarray2 1 5 3 5 2 3 5 基本上 当相同的数字在数
  • 将 jQuery 数组字符串转换为 PHP 数组

    首先 我得说我对 PHP 还很陌生 我正在尝试获取一个可以使用 foreach 的 PHP 对象 以下字符串通过 ajax 传递 我正在尝试转动以下字符串 menu title TEST1 href title TEST2 href QWE
  • mongodb对话系统

    我正在实施一个verymongodb 上的简单对话系统 这个想法应该是 当我打开一个 convo 时 它应该显示发送和接收的消息 到目前为止一切正常 并且应该非常容易 通过使用像这样的伪代码这样的简单查询 from my id AND to
  • php 在内容前插入十六进制字符数

    我正在将网站移动到新服务器 旧服务器有 php 5 3 2 新服务器有 php 5 5 9 Centos httpd Apache 2 2 26 我已经复制了文件 它工作正常 除了唯一奇怪的事情 一些奇怪的十六进制数字被插入到页面内容之前
  • symfony 2 形式的函数 getName 做什么

    这是我的表格类 class CommentType extends AbstractType public function buildForm FormBuilder builder array options builder gt ad
  • 如何在 PHP 中正确分割路径

    执行以下操作的最佳方法是什么 我通过 AJAX 请求获取路径 e g dir1 dir2 dir3 dir4 我需要在我的网页上这样展示它 dir1 gt gt dir2 gt gt dir3 gt gt dir4 它们每个都是 html
  • 将 SQL 中的数据存储在数组中

    我正在尝试将 sql 数据库中的数据存储到数组中 目前我有这个 query mysql query SELECT FROM InspEmail WHERE Company LIKE company while row mysql fetch
  • PSR-4 代码库中条令生成器的解决方法

    在 Windows 机器上使用 Symfony 2 和 Doctrine 我正在尝试 从现有模式生成实体 php app console doctrine mapping import force CoreBundle annotation
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • WAMP 不显示目录列表中的图标

    过去 我通过 vmware 处理 PHP 代码 但最近我决定转而通过 WAMP 在 Windows 8 1 上 在本地进行处理 我创建了一个空文件夹tests in the www folder 然后在我的浏览器上输入http localh
  • 需要 mysqli_fetch_all 的替代方案

    我有一个 php mysqli 代码 可以找到一个我的本地服务器 但是在我的服务器上使用它时 我得到了一个 Fatal error Call to undefined function mysqli fetch all in home3 t
  • cURL '格式错误的网址'

    This url 在浏览器中工作得很好 但 cURL 返回错误 3 格式错误的 url 关于解决方法有什么想法吗 EDIT 卷曲代码 function get web page url options array CURLOPT RETUR
  • 我可以显示我在 PHP 中设置的所有 cookie 吗?

    我正在尝试诊断 cookie 中的错误 但 cookie 的名称不是应有的名称 PHP 有没有办法打印我的域设置的所有 cookie 你有没有尝试过 print r COOKIE
  • 如何创建环境变量来保护我的网站的 Google 地图 API 密钥(或任何其他秘密值)?

    我正在学习使用 Bootstrap 编写自己的网站 并使用 Google 地图 API 密钥和 Google Developers 的脚本轻松地将地图放置在我的页面上 理想情况下 我会有类似的东西 即我已经尝试过这个 Html PHP
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • WordPress 事件按元生效日期排序

    我在获取参数数组以按 Wordpress 中的日期对事件列表进行排序时遇到一些问题 我在 Stack Overflow 和其他地方找到了几个建议的解决方案 但经过大量的试验和错误后 这些解决方案似乎都不起作用 这没什么花哨的 而且应该比这容
  • NodeJS 和 PHP (Laravel) 集成用于 Socket.IO 实时聊天

    目前我有一个我写过的网站PHP通过Laravel 框架 我已经使用写了一个实时聊天nodeJS with 套接字IO and Express现在我想做的是将它集成到我已经编写的 Laravel 网站中 问题是聊天必须在主页中 当前由 Lar
  • 哪个 PHP 5 版本最常用?

    当我开发将在不同配置的客户端 Web 服务 通常使用共享托管 上使用的应用程序时 我应该假设大多数 Web 服务器都具有哪个 PHP 5 版本 例如 5 2 x 5 3 x 等 在所有使用 PHP 版本 5 的网站中 有 84 9 使用版本
  • PHP 中的 Zip 流

    我有一个 PHP 脚本 可以动态创建 zip 文件并强制浏览器下载该 zip 文件 问题是 我可以直接将zip文件写入连接到用户浏览器的输出流 而不是先将其保存为服务器上的真实文件 然后发送文件吗 提前致谢 如果您的 Web 服务器运行的是

随机推荐

  • 无法启动 Hyper-V 容器

    在此输入图像描述我正在尝试运行 docker 容器 但收到以下错误消息 因为未启用 Hyper V 和虚拟化 但我已经启用了 Hyper V 和虚拟化 我已经通过 Bios 以及 power shell 命令进行了 Hyper V 设置 尽
  • 无法从 Jenkins CI 启动浏览器

    当从 Jenkins 构建后通过调用 rake 任务触发黄瓜测试时 我无法在 CI 服务器上启动浏览器 在我的例子中是 Linux 上的本地主机 Jenkins 控制台日志如下 我非常确定一切都设置正确 因为我可以通过命令行在服务器上成功运
  • OpenCV 2.3 编译问题 - 未定义的参考 - Ubuntu 11.10

    系统信息 Ubuntu 11 10 64 位 和 OpenCV 2 3 今天安装 我正在尝试在 OpenCV 2 3 中编译一些非常简单的代码 但出现了一个奇怪的错误 include
  • 来自 python 的 Windows 特殊文件夹和已知文件夹(开始菜单、下载等)[重复]

    这个问题在这里已经有答案了 确定Windows路径的最佳方法是什么特殊文件夹 and 已知文件夹在Python中 我发现了几种流行的 SpecialFolders 方法 也称为CSIDL 但还没有什么简单的事情已知文件夹ID 保持了向后兼容
  • 使用 * 访问方法中的值

    在方法定义中 当 按以下方式使用 这是什么意思 def foo end 我理解以下用法 def foo args end 我不确定在前一种情况下如何访问方法参数 它的意思是 接受和丢弃任意数量的参数 两个定义在技术上是相同的 但不给参数数组
  • 使用 Apple Healthkit 测量心率

    我目前正在应用程序中使用 Healthkit 获取大多数类型的信息都没有问题 但在心率方面遇到问题 每次我尝试读取样本时 结果都是 0 我有一块 Apple Watch 我的心率被输入到 Apple Health 应用程序中 并且可以在那里
  • JSF:Mojarra 2.1 到 2.2 迁移导致 ViewExpiredException

    我正在将应用程序从 PrimeFaces 3 5 18 Mojarra 2 1 26 移植到 PrimeFaces 4 0 2 Mojarra 2 2 4 当我重新启动服务器时 我收到 ViewExpiredException 服务器日志包
  • HRESULT 异常:0x800AC472

    当我将 Excel 应用程序的 displayalert 属性设置为 true 时 会触发此异常 为什么 属性浏览器是否已暂停 如果是这样 这可能会有所帮助 来自 Excel 中集合运算的 HRESULT 800ac472 一个建议是将您的
  • 批处理文件 - 下载最新的 FTP 文件夹

    我正在尝试从 FTP 服务器下载最新的文件夹 该文件夹包含多个文件夹 其中包含多个 CSV 文件 我遇到的问题是每天都会创建文件夹 每次运行脚本时我只希望它下载该位置的最新文件夹 我不知道如何指定这一点 甚至不知道如何使用批处理文件从 FT
  • 添加更复杂的子类公理

    我偶然发现了另一个问题 I want to achieve something similar to this 我想使用 RDFList 来执行此操作 将必要的属性添加到列表中 然后调用方法 createUnionClass 或 creat
  • CImg 与 jpeglib

    我试图让 CImg 与 Visual Studio 2017 和 jpeg 9b 一起使用 但由于某种原因它不能使用 Code define cimg use jpeg include CImg CImg h using namespace
  • 如何使用 Power BI DAX 从移动表计算每天的库存?

    我有一张库存变动表 每个库存项目都有一个唯一的 ID 并且它们会随着时间的推移更改状态 假设状态 A B C 和 D 但并不总是按此顺序 ID的每次状态变化都是表中的一条新记录 并带有状态变化的时间戳 我的目标是使用 Power BI DA
  • AVCaptureSession 仅获取视频缓冲区

    我试图从 iPhone 摄像头捕获视频和音频 并由 avassetwriter 作为视频文件输出 但输出视频文件仅包含带有音频的第一帧 我检查了 AVCaptureSession 委托方法 void captureOutput AVCapt
  • 导出机器学习模型

    我正在创建一个机器学习算法并想将其导出 假设我正在使用 scikit learn 库和随机森林算法 modelC RandomForestClassifier n estimators 30 m modelC fit trainvec yv
  • 如何从 javascript 函数调用方法后面的代码?

    我有一个 javascript 函数 用于 aspx 页面中的 HTML img 点击事件 其代码隐藏页面中还有一个服务器方法 现在我想仅当用户单击 HTML img 时才从 javascript 函数调用服务器方法而不带任何参数 C 代码
  • 隐藏 ViewController 后实例化按钮不起作用

    我刚刚发现这个非常奇怪的问题 我有这个button这是触发这个function objc func vergessenTapped let forgotPasswordVC self storyboard instantiateViewCo
  • 查找具有 n 个元素的表的最佳列和行大小以及其比例的给定范围

    我正在寻找一种从 n 个元素创建表格的最佳方法 以便理想情况下没有空单元格 但同时表格尺寸列 行的比例变得尽可能接近 1 当然 如果 n 是平方数 那么就很容易 cols rows sqrt n 如果 n 是素数 那么很明显会有空单元格 所
  • 在 Github 操作中获取修改后的文件

    我的存储库中有 2 个 Github Actions 工作流程 其中一个步骤需要获取 PR 中已修改的所有文件 删除的文件除外 我在第一个中使用这个 on pull request branches main jobs get files
  • Java 方法有排序约定吗? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有一个大型类 大约 40 个方法 它是我将作为课程作业提交的包的一部分 目前 这些方法在公用 私有等方面相当混乱 我想以合理的方式对它们进行排序 有这样做的标准方法吗 例如 通
  • 带有动态类名的 PHP 命名空间

    想知道其他人在使用 PHP 5 3 命名空间类的新功能时是否遇到过这个问题 我正在生成一个动态类调用 利用一个单独的类来定义应用程序中的用户类型 基本上 类定义器采用类型的整数表示形式并解释它们 返回一个包含类名的字符串 该类名将被称为该用