PHP中类的自动加载的方法


Posted in PHP onMarch 17, 2017

类的自动加载是指,在外面的页面中,并不需要去“引入”类文件,但是程序会在需要的时候动态加载需要的类文件。

方法1:使用__autoload魔术函数

当程序需要某个类时,就会去调用该函数,该函数我们需要自己去定义并在其中写好加载类文件的通用语句。

<?php
    //需要类是自动调用,而且会传进来一个类名,这个案例的文件名为21A.class.php,类名为A
     function __autoload($className){
      require "./21".$className.".class.php";
    }
    $o1 = new A();
    $o1->v1 = 10;
    echo "<br/>v1:".$o1->v1;
  ?>

方法2:使用spl_autoload_register函数

该函数的作用是生命多个可以用来代替autoload函数作用的函数,语法如下:spl_autoload_regist("函数名1");如果用spl_autoload_register,autoload就失效了。

<?php
    //注册两个用于自动加载的函数名
    spl_autoload_register('auto1');
    spl_autoload_register('auto2');
    function auto1($className){
      $file = "./21".$className.".class.php";
      if(file_exists($file)){
        require "./21".$className.".class.php";
      }
    }
    function auto1($className){
      $file = "./22".$className.".class.php";
      if(file_exists($file)){
        require "./22".$className.".class.php";
      }
    }
    //如果需要一个雷,但这个页面还没有记载,就会依次调用auto1和auto2,知道找到该类文件并加载
  ?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
phpMyAdmin 安装教程全攻略
Mar 19 PHP
详解PHP显示MySQL数据的三种方法
Jun 05 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 PHP
php文档更新介绍
Jul 22 PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
浅析php工厂模式
Nov 25 PHP
PHP调试函数和日志记录函数分享
Jan 31 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 #PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 #PHP
php正则判断是否为合法身份证号的方法
Mar 16 #PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 #PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 #PHP
Yii1.1中通过Sql查询进行的分页操作方法
Mar 16 #PHP
php生成无限栏目树
Mar 16 #PHP
You might like
使用php shell命令合并图片的代码
2011/06/23 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
PHP fclose函数用法总结
2019/02/15 PHP
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
Python实现的简单模板引擎功能示例
2017/09/02 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
python生成器推导式用法简单示例
2019/10/08 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
比利时买床:Beter Bed
2017/12/06 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
园长自我鉴定
2013/10/06 职场文书
大学生个人简历自我评价
2013/11/16 职场文书
结婚邀请函范文
2014/01/14 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
2016年元旦寄语
2015/08/17 职场文书