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什么地方设置不同,有空再深究了。

     
     



  • 相关阅读:
    计算panel的靶向区段长度
    interval的排序,合并,取样等功能
    Bait 和 target的区别
    R 数据拆分到列
    制作annovar注释依赖的cosmic数据库
    制作适用于annovar的COSMIC数据库
    痘痘机理
    属性、域、元组、关系、候选码、主键、外键、关系代数
    how to install emacs25 in ubuntu 14
    Centos Install Emacs
  • 原文地址:https://www.cnblogs.com/yuzhould/p/12838548.html
Copyright © 2011-2022 走看看