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下实现农历日历的代码
Mar 07 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
Nov 18 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
分享一下贝贝成长进度的php代码
Sep 14 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
PHP 魔术变量和魔术函数详解
Feb 25 PHP
培养自己的php编码规范
Sep 28 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
PHP实现统计代码行数小工具
Sep 19 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 PHP
详解Laravel制作API接口
May 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学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
Python类装饰器实现方法详解
2018/12/21 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
python属于哪种语言
2020/08/16 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
Java平台和其他软件平台有什么不同
2015/06/05 面试题
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
校园餐饮创业计划书
2014/01/10 职场文书
八年级物理教学反思
2014/01/19 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
西双版纳导游词
2015/02/03 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书