跟着辛星认识一下PHP的自己主动载入
作为一个框架,文件的载入机制是不能少的,那么我们应该怎么载入呢,这些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的自己主动载入的更多相关文章
- 跟着辛星一起用CSS美化商品列表
说实话,近期对CSS的关注还是蛮多的,不为别的,仅仅是由于自己喜欢,感觉写CSS就像画家绘画一样,使用热情和激情去探索,没有了那份功利心,反而感觉是一种享受.特别有成就感,好啦,今天就分享一期自己用C ...
- 跟着辛星用PHP的反射机制来实现插件
我的博文的前一篇解说了PHP的反射机制是怎么回事,假设读者还不清楚反射机制,能够搜索下或者看我的博文,都是不错的选择.我们開始解说一下怎么用PHP来实现插件机制.所谓插件机制.就是我们定义一个接口.即 ...
- 辛星跟您玩转vim第一节之vim的下载与三种模式
首先值得一提的是,我的vim教程pdf版本号已经写完了,大家能够去下载,这里是csdn的下载地址:点此下载 ,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http://d ...
- 2014年度辛星html教程夏季版第二节
上面一节中我们介绍了HTML文件的书写和几个标签,接下来我们来认识几个其他的标签,这里我们主要介绍一下head标签和文本标签. ***************head标签*************** ...
- 【2014】【辛星】【php】【秋季】【2】第一个php程序
<span style="font-family:KaiTi_GB2312;font-size:18px;">*******************设置server** ...
- 辛星和您一起手写CSS气泡
上文中我公布了一篇手写导航条的博客,那么这一篇博客我将和大家一起手写气泡.那么什么是气泡呢?先给那些刚入门的童鞋一个截图,来更好的认识一下什么是气泡把: 这就是一个简单的气泡啦,那么它主要用来干什么呢 ...
- 辛星跟您玩转vim第四节之操作文本内容
首先值得一提的是.我的vim教程pdf版本号已经写完了.大家能够去下载,这里是csdn的下载地址:csdn下载,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http:// ...
- 2014年辛星完全解读Javascript第七节 数组和对象
由于Javascript是脚本语言,因此,使用起来非常方便,数组的使用也是比较简单的,下面我们就主要介绍一下Javascript中数组的介绍,以及上一节中没有完成的对象的介绍. *********** ...
- 2014年辛星完全解读Javascript第八节 json
json是JavaScript Object Notation的简写,它是一种轻量级的数据交换格式,而且表达上很容易靠字面去理解.json是用于存储和传输数据的格式,通常用于向服务器端传递数据. ** ...
随机推荐
- 大规模集群管理工具Borg
Google的大规模集群管理工具Borg 概述 Google的Borg系统是一个集群管理工具,在它上面运行着成千上万的job,这些job来自许许多多不同的应用,并且跨越多个集群,而每个集群又由大量的机 ...
- Linux 安装之U盘引导
说到装系统最简单的方法无非就是找个系统安装光盘来然后就一步一步慢慢的安装.简单是简单但好似大多数人好像都木有Linux的安装光盘. 因此仅仅能用U盘来模拟光盘的功能来装系统咯. 电脑上装有Window ...
- JDBC连接数据库和释放连接
用久了hibernate现在对于JDBC是怎么实现数据库的连接和释放,所以特地总结下关于JDBC的知识,目的是用于提醒自己很多Java的基础知识需要健全. package com.ssh.action ...
- Red Gate系列之五 .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(附插件安装教程2012-10-13更新) 完全破解+使用教程
原文:Red Gate系列之五 .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(附插件安装教程2012-10-13更新) 完全破解+使用教程 Red Gate ...
- 【Hibernate步步为营】--双向关联一对一映射具体解释(一)
一对一的映射在对象模型中是常常见到的,为了将对象模型转换为关系模型就必须在映射文件里进行配置,上篇文章讨论了一对一映射的单向关联的情况,重点是<one-to-one>标签的使用,须要在映射 ...
- iOSSingleton设计模式详细的说明教程
iOS有很多的设计模式,当然,不管是什么语言有很多的设计模式.辛格尔顿是一种之一,辛格尔顿,它从字面上是一个单独的实例,首先,它是只有一个单一的,其次,它是一个实例.我们知道,在iOS用于开发Obje ...
- BST树,B树、B-树、B+树、B*树
BST树,B树.B-树.B+树.B*树 二叉搜索树(BST): 1.所有非叶子结点至多拥有两个儿子(Left和Right): 2.所有结点存储一个关键字: 3.非叶子结点的左指针指向小于其关键字的子树 ...
- 学派Delphi方法(推荐)——————————【Badboy】
Delphi是一个新的可视化编程环境, 提供了一种方便.快捷的Windows使用顺序开发工具. 它使用了MicrosoftWindows图形用户界面的很多先进特性和设计思想. 本文就给读者引见学Del ...
- VS2010中使用CL快速 生成DLL的方法
方案一: 1.命令行中输入cl example.cpp,生成example.obj和example.lib文件.有可能还会提示“没有入口点”的错误.这是因为我们的CPP中是要生成dll文件的,并没有m ...
- PHP读取Excel里的文件
下载phpExcelReader http://sourceforge.net/projects/phpexcelreader 解压后得到以下这些文件 jxlrwtest.xls这个excel文件有 ...