明明已经include_once() 但还是报错Class 'XXXXX\Controller\TOPData' not found
本人使用的是php7 + thinkphp3.2.3
问题
在controller中的一个方法中使用
public function gg(){
include_once('TOPData.php');
$topData = new TOPData();
}
:(
Class 'XXXXXX\Controller\TOPData' not found
<?php
class TOPData
{
public function TestData()
{
echo 11;
}
}
看看吧,多简单的一个class,
查找一
查找了 文件名问题, 文件大小写问题,文件权限问题,都不是。。
甚至查找了是不是 include_once 失效了,为这个贡献了不了少百度和bing的搜索量。
尝试将 class TOPData 清空只保留一个最简单的赋值变量,发现include_once 是有作用的
那么可以确定问题是 include_once 文件后,class找不到
使用了
var_dump('TOPData.php');
if ( ! class_exists('TOPData'))
{
echo 222;
}
来判断这个class是否存在,结果是class还存在。
class明明存在,但是却 Class 'XXXXXX\Controller\TOPData' not found
查找二
有人说类名和文件名不能相同,否则会报错,经过尝试也不是
休息了十分钟
解决
仔细观察
Class 'XXXXXX\Controller\TOPData' not found
发现thinkphp貌似一直认为这个TOPData和controller有关,好像对class的路径解析有问题,最后一个反斜线解决问题
public function gg(){
include_once('TOPData.php');
$topData = new \TOPData();
}
本菜另外一个服务器,没带反斜线却可以正常调用,环境基本一致。好奇怪,估计是thinkphp什么地方设置不同,有空再深究了。
分类:
PHP
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器