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 相关文章推荐
PHP中的串行化变量和序列化对象
Sep 05 PHP
一个php导出oracle库的php代码
Apr 20 PHP
解析PHP中常见的mongodb查询操作
Jun 20 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
Jun 21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
Jun 30 PHP
ThinkPHP框架实现session跨域问题的解决方法
Jul 01 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 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中var_export与var_dump的区别分析
2010/08/21 PHP
for循环连续求和、九九乘法表代码
2012/02/20 PHP
php实现图片缩放功能类
2013/12/18 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
js中的this关键字详解
2013/09/25 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
python学习之matplotlib绘制散点图实例
2017/12/09 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
基层干部十八大感言
2014/01/19 职场文书
总经理助理工作职责
2014/02/06 职场文书
公司办公室岗位职责
2014/03/19 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
结婚典礼主持词
2015/06/29 职场文书
数学备课组工作总结
2015/08/12 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL