zoukankan      html  css  js  c++  java
  • 明明已经include_once() 但还是报错Class 'XXXXXControllerTOPData' not found

    本人使用的是php7 + thinkphp3.2.3

    问题

    在controller中的一个方法中使用


    public function gg(){
    include_once('TOPData.php');
        $topData = new TOPData();
    }

    :(

    Class 'XXXXXXControllerTOPData' 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 'XXXXXXControllerTOPData' not found


    查找二

    
    

    有人说类名和文件名不能相同,否则会报错,经过尝试也不是

    
    

    休息了十分钟

    
    


    解决

    
    

    仔细观察
    Class 'XXXXXXControllerTOPData' not found
    发现thinkphp貌似一直认为这个TOPData和controller有关,好像对class的路径解析有问题,最后一个反斜线解决问题
    public function gg(){
    include_once('TOPData.php');
    $topData = new TOPData();
    }
    本菜另外一个服务器,没带反斜线却可以正常调用,环境基本一致。好奇怪,估计是thinkphp什么地方设置不同,有空再深究了。

     
     



  • 相关阅读:
    bootstrap表格
    Bootstrap的学习
    cssText文本格式化
    for循环坐标生成《逢五向上转》
    for循环坐标生成《逢十往下一行》
    for
    bootstrap学习笔记细化(表格)
    bootstrap学习笔记细化(按钮)
    bootstrap学习笔记细化(表单)
    bootstrap学习笔记细化(标题)
  • 原文地址:https://www.cnblogs.com/yuzhould/p/12838548.html
Copyright © 2011-2022 走看看