作为一个框架,文件的载入机制是不能少的,那么我们应该怎么载入呢,这些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. 跟着辛星用PHP的反射机制来实现插件

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

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

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

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

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

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

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

  5. 辛星php函数,辛星和您用更简略的方式去实现PHP中的验证码

    辛星和您用更简单的方式去实现PHP中的验证码 说实话,提到验证码我想大家都不会陌生,确实,验证码还是挺常见的,现在搜索一下PHP的验证码类简直是海量的数据,那我们今天就来实现一个自己的验证码把,不过它 ...

  6. 零积分下载,2014年辛星mysql教程秋季版第一本已经完工,期待您的支持

    经过一段时间的不懈努力.终于,2014年辛星mysql教程秋季版的第一本,即夯实基础已经完工,在csdn的下载地址为:去下载地址 ,假设左边地址跪了,能够去http://download.csdn.n ...

  7. 2014年度辛星解读css第四节

    接下来的这一节我计划解说的是超链接和列表的样式,然后我们做出一个导航栏出来,事实上导航栏是很常见的,可是我们这里做得这个有点并不那么完好,等我们学完了css之后再完好它. ************** ...

  8. mysql+last_query_cost_辛星简译MySQL中的last_query_cost_MySQL

    我们都知道在MySQL中可以通过show status like 'last_query_cost' 来查看查上一个查询的代价,而且它是io_cost和cpu_cost的开销总和,它通常也是我们评价一 ...

  9. 辛星花费一个月时间整理的系列PHP教程,免费下载奥

    首先是这个PHP专栏的连接地址:辛星PHP资料下载专栏,在这个专栏里面可以看到所有可用的下载资料,先来个截图吧:               然后就是它的所有教程的一个截图,截图如下:         ...

  10. 辛星浅谈PHP的混乱的编码风格

    我们都知道.各种编程语言都有自己的风格,即使是像C和C++那样一脉相承的语言(C++本意全然兼容C的语法).编程风格上还是有些区别.比方非常典型的就是C++风格的单行凝视和C风格的多行凝视. 而尽管J ...

最新文章

  1. 每一次宕机都是新的开始
  2. java scanner 类_Java Scanner类
  3. zookeeper的设计猜想-leader选举
  4. 如何针对大数据进行分析
  5. html 导航栏跟着动_“跟着导航来,现在不敢动!”浙江深山男游客吓坏,4岁儿子冻得直跺脚...
  6. Firefox 的about:config
  7. 希尔伯特变换(1)-基础理论
  8. 计算机配置显示器,电脑怎么配置多台显示器
  9. Windows NT 就是指现在的 Windows
  10. PS如何使用自定义画笔
  11. Settings sync 配置与使用
  12. ubuntu10.10下ESPON v350扫描仪的安装
  13. 使用python爬取某药品网站药品说明
  14. 苹果手机计算机怎么看以前的记录,苹果手机怎么查找以前的历史通话记录
  15. C语言编程之.H文件与.C文件的关系
  16. 推进线上线下深度融合,5G+VR+直播技术助力文旅产业加快复苏
  17. python收集参数_python收集参数
  18. 【虹科案例】虹科数字化仪在氢燃料电池测试中的应用
  19. android大于什么系统版本,谷歌发布最新Android各版本占比数据:9.0份额超过10%
  20. OUTLOOK Exchange方式设置

热门文章

  1. 在Sql Server上安装插件Sql Prompt
  2. Ext中Date format含义
  3. ShellExecute的各种用法 [转帖于 2009-05-020 21:15]
  4. 取消浏览器的默认样式
  5. SICP习题 1.17 (用加法求乘积)
  6. C++构造函数、new、delete
  7. 【前端】javascript判断undefined、null、NaN;字符串包含等
  8. js 对象中属性的来源
  9. 王者荣耀英雄铭文;出装
  10. Python连载7-time包的其他函数