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基础知识:类与对象(1)
Dec 13 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
thinkPHP3.2简单实现文件上传的方法
May 16 PHP
PHP单链表的实现代码
Jul 05 PHP
php修改数组键名的方法示例
Apr 15 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
PHP生成图表pChart的示例解析
Jul 31 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和ACCESS写聊天室(三)
2006/10/09 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
vue实现行列转换的一种方法
2019/08/06 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
Python实现简易端口扫描器代码实例
2017/03/15 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
英国标准协会商店:BSI Shop
2019/02/25 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
高三自我鉴定
2013/10/23 职场文书
公司活动邀请函
2014/01/24 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书