9)添加自动加载函数

Posted 小油菜123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9)添加自动加载函数相关的知识,希望对你有一定的参考价值。

注意:我把之前的控制器文件名都加了C,不然,那个自动记载函数,我不会写

目录雏形:

      

 

我开始把自动加载类放在index.php代码的最下面,然后就报了这个错误:

  

因为我把代码中只要是类加载的地方,全部都注释了,所以,所以他报了--------Controller这个类没加载到,哎

气死我了,然后我发现,那个自动加载函数根本没进去,因为我加了这行代码,根本没有输出出来:

后面,我才发现,原来这个index.php代码在前面的第11行发现了错误,那么后面可定就不运行了啊,哎,真是敲得代码少,这样的问题都不知道》》。。。。。。

 

我的新的index.php代码展示:

    

 1 <?php
 2     /**
 3      * Created by PhpStorm.
 4      * User: Interact
 5      * Date: 2017/8/19
 6      * Time: 22:02
 7      */
 8     //确定分发参数
 9     //动作
10     define(\'CONTROLLER\',isset($_GET[\'c\'])?$_GET[\'c\']:\'zixunC\');
11     define(\'ACTION\',isset($_GET[\'a\'])?$_GET[\'a\']:\'show\');
12     define("PLATFORM",isset($_GET[\'p\'])?$_GET[\'p\']:\'test\');
13     function userautoload($class_name){
14         
15 //        var_dump($class_name);
16         //先处理确定的(框架中的核心类)
17         // 类名与类文件映射数组
18         $framework_class_list = array(
19             // \'类名\' => \'类文件地址\'
20             \'Controller\' => \'./framework/Controller.php\',
21             \'Model\' => \'./framework/Model.class.php\',
22             \'Factory\' => \'./framework/Factory.class.php\',
23             \'mysqlDB\' => \'./framework/MySQLDB.class.php\',
24         ) ;
25 //        echo "走没走";
26         //判断是否为核心类
27         if (isset($framework_class_list[$class_name])) {
28             //是核心类
29             require $framework_class_list[$class_name];
30         }
31         //判断是否为可增加(控制器类,模型类)
32         //控制器类,截取后是个字符,匹配Controller
33         elseif (substr($class_name, -1) == \'C\') {
34             // 控制器类, 当前平台下controller目录
35             require \'./application/\' . PLATFORM . \'/controller/\' . $class_name . \'.controller.class.php\';
36         }
37         //模型类,截取后5个字符,匹配Model
38         elseif (substr($class_name, -5) == \'Model\') {
39             // 模型类,当前平台下model目录
40             require \'./application/\' . PLATFORM . \'/model/\' . $class_name . \'.class.php\';
41         }
42         
43     }
44     spl_autoload_register(\'userautoload\');
45     
46     
47     
48     
49     require \'./application/\'.PLATFORM.\'/controller/\'.CONTROLLER.\'.controller.class.php\';
50 $controlelr_name=CONTROLLER;
51 $controller=new $controlelr_name();
52 $action_name=ACTION;
53 $controller->$action_name();

 

注意我的自动加载函数放到了后面类的实例化的前面。

html代码有改动:

    

html代码展示:

     

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="utf-8"><!-- 编码格式是 utf-8 -->
 5     <meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 使用最新式 ie 内核渲染国内某些 所谓的 双核浏览器 或者是 直接 使用webkit去渲染-->
 6     <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=no">
 7     <!-- 视口属性没有设置 禁用 用户缩放, 如果有需求可以添加-->
 8     <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
 9     <title>bootstrap的模板页</title>
10     <!-- Bootstrap -->
11 
12 </head>
13 <body>
14 <table>
15     <tr>
16        <th>ID&nbsp&nbsp&nbsp</th>
17         <th>名字&nbsp&nbsp&nbsp</th>
18         <th>分类&nbsp&nbsp&nbsp</th>
19         <th>作者&nbsp&nbsp&nbsp</th>
20         <th>更新时间&nbsp&nbsp</th>
21         <th>浏览次数&nbsp&nbsp</th>
22         <th>发布状态&nbsp&nbsp</th>
23     </tr>
24     <?php foreach($records as $row) : ?>
25     <tr>
26         <th><?php echo $row[\'ZX_id\']; ?></th>
27         <th><?php echo $row[\'ZX_name\']; ?></th>
28         <th><?php echo $row[\'ZX_fenlei\']; ?></th>
29         <th><?php echo $row[\'ZX_zuozhe\']; ?></th>
30         <th><?php echo $row[\'gengxin_time\']; ?></th>
31         <th><?php echo $row[\'liulan_cishu\']; ?></th>
32         <th><?php echo $row[\'fabu_zhuangtai\']; ?></th>
33         <th><a href="index.php?a=delete">删除</a></th>
34         <th><a href="index.php?c=newnewnewC&a=hanshu">新的页面展示</a></th>
35     </tr>
36     <?php endforeach ?>
37 </table>
38 </body>
39 </html>

 

  注释掉类加载的地方:

    

    

    

结果展示:

    

 

 

 


      

以上是关于9)添加自动加载函数的主要内容,如果未能解决你的问题,请参考以下文章

避免Android在方向更改时自动重新添加我的片段

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

9.13面经

分享前端开发常用代码片段

收藏|分享前端开发常用代码片段