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 ob_start()控制浏览器cache、生成html实现代码
Feb 16 PHP
PHP导航下拉菜单的实现如此简单
Sep 22 PHP
PHP实现微信公众平台音乐点播
Mar 20 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
php使用ob_flush不能每隔一秒输出原理分析
Jun 02 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
PHP实现查询手机归属地的方法详解
Apr 28 PHP
laravel中的一些简单实用功能
Nov 03 PHP
PDO::quote讲解
Jan 29 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
Apr 13 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
摩卡咖啡
2021/03/03 咖啡文化
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
PHP加密解密类实例分析
2015/04/20 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
ES6的新特性概览
2016/03/10 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
opencv实现简单人脸识别
2021/02/19 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
Python 里最强的地图绘制神器
2021/03/01 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
德购商城:德国进口直邮商城
2017/06/13 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
黄金搭档广告词
2014/03/21 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
党校毕业个人总结
2015/02/28 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL