php类的自动加载操作实例详解

 更新时间:2016年09月28日 14:34:58   作者:ligbee  
这篇文章主要介绍了php类的自动加载操作,结合实例形式详细分析了php类的自动加载操作相关函数与实现技巧,需要的朋友可以参考下

本文实例讲述了php类的自动加载操作。分享给大家供大家参考,具体如下:

类的自动加载

在外面的页面中,并不需要去引入类文件,但程序会在需要一个类的时候自动去“动态加载”该类。

① 创建一个对象的时候new

② 直接使用一个类名(操作静态属性与方法)

使用__autoload魔术函数

当出现两种情况时候,就会调用该函数,该函数需要我们预先定义,在其中写好加载类文件的通用语句

function __autoload($name){
  require './lib/'.$name.'.class.php';
}

使用spl_autoload_register()

用它注册(声明)多个可以代替__autoload()作用的函数,自然也得去定义这些函数,并且函数的作用跟__autoload()作用一样,不过此时可以应对更多的情形

//注册用于自动加载的函数
spl_autoload_register("model");
spl_autoload_register("controll");
//分别定义两个函数
function model($name){
  $file = './model/'.$name.'.class.php';
  if(file_exists($file)){
    require './model/'.$name.'.class.php';
  }
}
//如果需要一个类,但当前页面还没加载该类
//就会依次调用model()和controll(),直到找到该类文件加载,否则就报错
function controll($name){
  $file = './controll/'.$name.'.class.php';
  if(file_exists($file)){
    require './controll/'.$name.'.class.php';
  }
}

//若注册的是方法而不是函数,则需要使用数组
spl_autoload_register(
  //非静态方法
  array($this,'model'),
  //静态方法
  array(__CLASS__,'controller')
);

项目场景应用

//自动加载
//控制器类 模型类 核心类
//对于所有的类分为可以确定的类以及可以扩展的类
spl_autoload_register('autoLoad');
//先处理确定的框架核心类
function autoLoad($name){
  //类名与类文件映射数组
  $framework_class_list = array(
    'mySqldb' => './framework/mySqldb.class.php'
  );
  if(isset($framework_class_list[$name])){
    require $framework_class_list[$name];
  }elseif(substr($name,-10)=='Controller'){
    require './application/'.PLATFORM.'/controller/'.$name.'.class.php';
  }elseif(substr($name,-6)=='Modele'){
    require './application/'.PLATFORM.'/modele/'.$name.'.class.php';
  }
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHP 返回13位时间戳的实现代码

    PHP 返回13位时间戳的实现代码

    下面小编就为大家带来一篇PHP 返回13位时间戳的实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • php基于PDO实现功能强大的MYSQL封装类实例

    php基于PDO实现功能强大的MYSQL封装类实例

    这篇文章主要介绍了php基于PDO实现功能强大的MYSQL封装类,结合完整实例形式分析了php基于pdo实现mysql数据库连接、增删改查、事务等操作的方法,需要的朋友可以参考下
    2017-02-02
  • php编写批量生成不重复的卡号密码代码

    php编写批量生成不重复的卡号密码代码

    本文给大家分享的是一个十分实用的代码,项目中经常需要用到,可以批量生成不重复的卡号密码的2种方法,有需要的小伙伴参考下吧。
    2015-05-05
  • php计算多维数组中所有值总和的方法

    php计算多维数组中所有值总和的方法

    这篇文章主要介绍了php计算多维数组中所有值总和的方法,涉及php针对多维数组递归调用的技巧
    2015-06-06
  • PHP中session跨子域的三种实现方法

    PHP中session跨子域的三种实现方法

    做项目的时候跨域问题在cooike及session中我们经常会使用到了,不过php对于子域处理是比较简单的了,小编整理了三个解决方案,下面一起来看看。
    2016-07-07
  • php装饰者模式简单应用案例分析

    php装饰者模式简单应用案例分析

    这篇文章主要介绍了php装饰者模式简单应用,结合具体实例形式分析了php装饰者模式的原理及文章编辑相关应用操作技巧,需要的朋友可以参考下
    2019-10-10
  • PHP使用PDO实现mysql防注入功能详解

    PHP使用PDO实现mysql防注入功能详解

    这篇文章主要介绍了PHP使用PDO实现mysql防注入功能,结合实例形式详细分析了PHP使用pdo操作mysql防注入原理、实现方法及相关注意事项,需要的朋友可以参考下
    2019-12-12
  • PHP与MongoDB简介|安全|M+PHP应用实例详解

    PHP与MongoDB简介|安全|M+PHP应用实例详解

    本篇文章是对PHP中的MongoDB简介|安全|M+PHP应用实例进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php自动获取关键字的方法

    php自动获取关键字的方法

    这篇文章主要介绍了php自动获取关键字的方法,通过自定义函数tiqukeyword实现关键字的自动获取功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • php从数据库查询结果生成树形列表的方法

    php从数据库查询结果生成树形列表的方法

    这篇文章主要介绍了php从数据库查询结果生成树形列表的方法,涉及php操作html元素生成树形列表的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04

最新评论