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如何获取Cookie并实现模拟登录

    PHP如何获取Cookie并实现模拟登录

    这篇文章主要介绍了PHP如何获取Cookie并实现模拟登录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Ajax请求PHP后台接口返回信息的实例代码

    Ajax请求PHP后台接口返回信息的实例代码

    今天小编就为大家分享一篇Ajax请求PHP后台接口返回信息的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • php判断文件上传图片格式的实例详解

    php判断文件上传图片格式的实例详解

    这篇文章主要介绍了php判断文件上传图片格式的实例详解的相关资料,希望通过本文能帮助大家实现这样方法,非常有参考价值,需要的朋友可以参考下
    2017-09-09
  • ini_set的用法介绍

    ini_set的用法介绍

    PHP ini_set用来设置php.ini的值,在函数执行的时候生效,对于虚拟空间来说,很方便,下面为大家介绍下此方法的使用
    2014-01-01
  • PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析

    PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析

    这篇文章主要介绍了PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法,结合实例形式分析了php的图像载入函数imagecreatefromgif、imagecreatefromjpeg、imagecreatefrompng、imagecreatefromwbmp及imagecreatefromstring使用技巧,需要的朋友可以参考下
    2016-11-11
  • PHP中其实也可以用方法链

    PHP中其实也可以用方法链

    javascript里有个很有效的用法即方法链,在PHP里也可以使用方法链
    2011-11-11
  • PHP加密解密字符串汇总

    PHP加密解密字符串汇总

    PHP加密解密函数分享,一个是Discuz!的authcode加密函数(带详细分解),一个是encrypt()函数。需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理。
    2015-04-04
  • PHP中extract()函数的妙用分析

    PHP中extract()函数的妙用分析

    近日在看一个牛人的代码时,看到一个非常好用的函数:extract(),它的主要作用是将数组展开,键名作为变量名,元素值为变量值,可以说为数组的操作提供了另外一个方便的工具
    2012-07-07
  • php基本函数汇总

    php基本函数汇总

    本文给大家汇总了16个常见的php基本函数,涵盖的面很广,这里推荐给大家,希望对大家学习php能够有所帮助。
    2015-07-07
  • PHP开发规范手册之PHP代码规范详解

    PHP开发规范手册之PHP代码规范详解

    对于PHP入门学习的童鞋来说,了解PHP开发规范可以少走很多弯路,网上各种PHP开发规范也很多,我结合自身使用PHP的情况,来说说我所理解的PHP开发规范。
    2011-01-01

最新评论