php - 在 PHP 7 中使用变量实例化对象
问题描述
在我的本地机器上,运行 Win 10,PHP 7.4 以下代码可以工作,但不能在我的生产服务器上工作,即使我在两者上都有相同的 PHP 版本。
<?php
use controller\Admin;
$ct_name = 'controller'. DIRECTORY_SEPARATOR . ucfirst($this->url[0]);
$controller = new $ct_name();
我以前有时尝试过一些有效的方法,但我不记得我做了什么。
解决方案
看起来你DIRECTORY_SEPARATOR
就是问题所在,除非你在 Windows 上,否则它DIRECTORY_SEPARATOR
是一个正斜杠,其中命名空间分隔符需要是一个反斜杠。
我快速编辑了您的代码,因此您可以尝试一下:
<?php
use controller\Admin;
$ct_name = 'controller\\' . ucfirst($this->url[0]);
$controller = new $ct_name();
请注意,在字符串中使用反斜杠时,几乎总是需要转义。
推荐阅读
- python - python irc bot试图使用两个不同的消息系统
- javascript - 如何使用 jQuery 中的自定义字段使数据表中的选定列可编辑?
- python-3.x - 如何使用 python 阅读电子邮件中出现的前 3 个(最新)线程
- python - 使用 python 抓取网页中的“AttributeError”
- python-3.x - ERROR MESSAGE: requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
- spring - JPA Criteria Predicate、StringPath、Querydsl 中的自定义 sql 查询
- dart - Dart:实例变量覆盖
- javascript - 角。如何根据服务的操作切换组件
- python - 如果“pip install”有效,为什么要“sudo pip install”?(HelloAnalytics.py 的问题)
- e-commerce - 按语言 ID 获取内容资产