作为一个框架,文件的载入机制是不能少的,那么我们应该怎么载入呢,这些PHP已经给我们想好了,所以我们仅仅须要依照规则办事就能够了,PHP中有两个函数能够完毕这个功能,第一个是__autoload,如今已经非常少用了,取而代之的是功能更加强大的spl_autoload_register,它须要的版本号是PHP5.2.1之后的版本号,如今我们的主流版本号都是支持的,因此能够放心使用。

在曾经的PHP版本号中,我们往往须要require一堆的文件名称,比方配置文件、数据库连接文件、日志文件等等,后来我们有了__autoload函数,它是在一个函数内完毕全部的导入工作,它的一个长处是能够用编程的方式来处理,比方用正則表達式一次能够导入n个文件,在一定程度上会非常方便我们的操作,可是,我们必须在__autoload中把全部的类型都写到,否则自己主动载入会得不到非常好的实现。

如今有了spl_autoload_register,它的功能就是能够注冊n个载入函数,我们随时随地能够使用这个内置函数来指定我们须要载入的文件名称,以下是它的函数原型:

bool spl_autoload_register ( [callback $autoload_function] )

以下我们用代码实战一下:

首先我们创建一个B.class.php,内容例如以下:

<?php
class B {
private $name = "辛星";
private $age = 23;
function getmsg(){
return "姓名是:".$this->name." 年龄是:".$this->age;
}
}

然后我们在同级文件夹下新建一个a.php文件,内容例如以下:

<?php
//先定义一个载入函数
function xin_load($class){
$file = $class.".class.php";
if(file_exists($file)){
require_once($file);
}
}
//然后注冊它
spl_autoload_register('xin_load'); $class = new B();
echo $class->getmsg();

这里的类B之所以可以被正确的实例化,就是由于当我们定义一个类B的实例的时候,系统发现须要去载入文件才行,于是他去找全部的载入函数,然后再B.class.php中找到了了B的定义,也就载入该文件,值得注意的是,这里的仅仅有B.class.php被导入,其它的格式差点儿相同的并不会被导入。

跟着辛星认识一下PHP的自己主动载入的更多相关文章

  1. 跟着辛星一起用CSS美化商品列表

    说实话,近期对CSS的关注还是蛮多的,不为别的,仅仅是由于自己喜欢,感觉写CSS就像画家绘画一样,使用热情和激情去探索,没有了那份功利心,反而感觉是一种享受.特别有成就感,好啦,今天就分享一期自己用C ...

  2. 跟着辛星用PHP的反射机制来实现插件

    我的博文的前一篇解说了PHP的反射机制是怎么回事,假设读者还不清楚反射机制,能够搜索下或者看我的博文,都是不错的选择.我们開始解说一下怎么用PHP来实现插件机制.所谓插件机制.就是我们定义一个接口.即 ...

  3. 辛星跟您玩转vim第一节之vim的下载与三种模式

    首先值得一提的是,我的vim教程pdf版本号已经写完了,大家能够去下载,这里是csdn的下载地址:点此下载 ,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http://d ...

  4. 2014年度辛星html教程夏季版第二节

    上面一节中我们介绍了HTML文件的书写和几个标签,接下来我们来认识几个其他的标签,这里我们主要介绍一下head标签和文本标签. ***************head标签*************** ...

  5. 【2014】【辛星】【php】【秋季】【2】第一个php程序

    <span style="font-family:KaiTi_GB2312;font-size:18px;">*******************设置server** ...

  6. 辛星和您一起手写CSS气泡

    上文中我公布了一篇手写导航条的博客,那么这一篇博客我将和大家一起手写气泡.那么什么是气泡呢?先给那些刚入门的童鞋一个截图,来更好的认识一下什么是气泡把: 这就是一个简单的气泡啦,那么它主要用来干什么呢 ...

  7. 辛星跟您玩转vim第四节之操作文本内容

    首先值得一提的是.我的vim教程pdf版本号已经写完了.大家能够去下载,这里是csdn的下载地址:csdn下载,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http:// ...

  8. 2014年辛星完全解读Javascript第七节 数组和对象

    由于Javascript是脚本语言,因此,使用起来非常方便,数组的使用也是比较简单的,下面我们就主要介绍一下Javascript中数组的介绍,以及上一节中没有完成的对象的介绍. *********** ...

  9. 2014年辛星完全解读Javascript第八节 json

    json是JavaScript Object Notation的简写,它是一种轻量级的数据交换格式,而且表达上很容易靠字面去理解.json是用于存储和传输数据的格式,通常用于向服务器端传递数据. ** ...

随机推荐

  1. VMware GSX Server 3.2.1 Build 19281免费下载

    VMware GSX Server 3.2.1 Build 19281免费下载 评论2   字号:大中小 订阅 VMware官方下载: For Windows 版系统:http://download3 ...

  2. 使用Socket沟通

    当两台电脑TCP/IP协议进行通讯.平时Socket对象来表示该通信接口的两端,并通过Socket生产I/O流进行网络通信. 其中ServerSocket对象可以接收从连接的其他通信实体的请求.这个目 ...

  3. mysql安装前的系统准备工作(转)

    一.系统环境总结:

  4. HDOJ 2665 Kth number

    静态区间第K小....划分树裸题 Kth number Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  5. CSDN markdown 编辑 三 基本语法

    这是一个副本,在准备好了help档,另外补充一些他们自己的解释. 这一次是不说话UML和LaTEX. 准备抽两篇文章专门谈. 1. 标题和字体大小 markdown字号太少了.觉得应该再加些. 在文字 ...

  6. 图的创建和遍历(BFS/DFS)

    图的表示方法主要有邻接矩阵和邻接表.其中邻接表最为常用,因此这里便以邻接表为例介绍一下图的创建及遍历方法. 创建图用到的结构有两种:顶点及弧 struct ArcNode { int vertexIn ...

  7. sails 相关文章

    Node 框架之sails   http://cnodejs.org/topic/555c3c82e684c4c8088a0ca1

  8. poj Firing(最大重量封闭图)

    Firing 题目: 要解雇一些人,而解雇的这些人假设人跟他有上下级的关系,则跟他有关系的人也要一起解雇.每一个人都会创造一定的价值,要求你求出在最大的获利下.解雇的人最小. 算法分析: 在这之前要知 ...

  9. SRS微信号和QQ组

    联系方式:https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Contact $(function () { $('pre.prett ...

  10. IE按F12,开发者工具已经在最低点,那么国家就不会出错

    ie浏览器.按F12,开发工具将问世. 没有,试试下面的方法就可以解决: 开开发者工具图标,它会出来缩略图,于缩略图右键点-你可以最大限度地提高.然后选择IE8兼容模式可 版权声明:本文博主原创文章. ...