美文网首页
php学习bug总结

php学习bug总结

作者: 司马捷 | 来源:发表于2016-08-24 15:47 被阅读72次

1.浏览器提示:

Fatal error: Class '\core\lib\drive\log\file' 
not found in /Library/WebServer/Documents/imooc/core/lib/log.php on line 22

仔细检查这个文件缺失存在,然后查看调用创建类的地方代码,
并打印

$class = '\core\lib\drive\log\\'.$drive;p($class);

self::$class = new $class;

创建类的时候,
也$class打印 \core\lib\drive\log\file
路径也是对的.但是就是调试不出来.
仔细检查发现 file文件的命名空间写成了\core\lib\log
修改成\core\lib\drive\log就没有问题了

这里为什么可以使用命名空间的方法来new 一个类呢? 难道不需要判断有没有这个文件或者有没有导入么? 看第二个TIPS;

2.这里学习一个常识吧,在php类中new 一个类
第一,需要导入这个文件,这里可以使用spl_autoload_register指定一个调用方法.自动load一个类.

spl_autoload_register('\core\imooc::load');

这段代码表示当new一个类的时候,会自动导入这个类.具体代码如下:将命名空间的\替换成路径的/写法.去导入文件路径.

static public function load($class){
        //自动加载类库
        if(isset($classMap[$class])){
            return true;
        }else{
            $class = str_replace('\\','/',$class);

            $file = IMOOC.'/'.$class.'.php';
            ///Library/WebServer/Documents/imooc/core/route.php

            if(is_file($file)){
                include $file;
                self::$classMap[$class] = $class;
            }else{
                //throw "没有找到文件";
                return false;
            }

        }
        p('load ok');

 }

第二:所以当new 一个类的时候按照命名空间写法,会自动触发spl_autoload_register这个指定的加载方法.
可以这样写

$route = new \core\lib\route;

也可以这样写:

$route = new \core\lib\route();

相关文章

  • php学习bug总结

    1.浏览器提示: 仔细检查这个文件缺失存在,然后查看调用创建类的地方代码,并打印 创建类的时候,也$class打印...

  • PHP学习过程经验总结

    PHP学习过程经验总结总会遇到Bug,总结以警 本地网站没问题,部署到服务器后出问题了,发现时fopen打开文件返...

  • PHP学习中的BUG

    1、如果在houdunwang空间下面想调用全局的var_dump函数 应该使用的形式是\var_dump(),其...

  • 2017.4.30工作总结

    2017.4.30工作总结 本周完成情况## ** 学习php进阶** 字符串学习 正则学习 未完成的 本周总结 ...

  • php基础个人总结

    php基础个人总结 标签: php 以下是我在学习php基础时,个人总结的一些零碎知识,本人文笔不好,可能会出现一...

  • PHP学习总结

    作为一种通用开源脚本语言,PHP可以在不同的平台上运行(Windows、LinuxUnix、MacOS X 等),...

  • PHP学习总结

    PHP自学计划记录 当前只学习了PHP的基础语法,没有涉及很多PHP内部提供的函数 学习目录:PHP自学计划-注释...

  • mysql index merge

    https://bugs.mysql.com/bug.php?id=77209

  • MySQL:5.6/5.7/8.0结果不一样一例

    用户测试: 已经提交了一个Bug:https://bugs.mysql.com/bug.php?id=103085...

  • PHP bug巧遇。

    1.请求链接数据库后,如果使用var_dump()函数来打印的话,会使得后面的if...else...。错乱,他会...

网友评论

      本文标题:php学习bug总结

      本文链接:https://www.haomeiwen.com/subject/dtcosttx.html