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制作静态网站的模板框架(一)
Oct 09 PHP
Ajax PHP 边学边练 之三 数据库
Nov 26 PHP
PHP开发中四种查询返回结果分析
Jan 02 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
Zend Framework教程之Bootstrap类用法概述
Mar 14 PHP
php获取文件后缀的9种方法
Mar 22 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
Apr 15 PHP
Zend Framework框架中实现Ajax的方法示例
Jun 27 PHP
Yii 2中的load()和save()示例详解
Aug 03 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
PHP使用Http Post请求发送Json对象数据代码解析
Jul 16 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投票系统防刷票判断流程分析
2012/02/04 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
用cssText批量修改样式
2009/08/29 Javascript
jQuery EasyUI API 中文文档 - EasyLoader 加载器
2011/09/29 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
ExpressJS入门实例
2015/01/14 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python内建模块struct实例详解
2018/02/02 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
python写入文件自动换行问题的方法
2019/07/05 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
利用python画出AUC曲线的实例
2020/02/28 Python
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
大学生学习自我评价
2014/01/13 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书