跟着辛星认识一下PHP的自动加载
来源:互联网 发布:海思四核3798m阿里云 编辑:程序博客网 时间:2024/05/20 07:52
作为一个框架,文件的加载机制是不能少的,那么我们应该怎么加载呢,这些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,内容如下:
<?phpclass 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被导入,其他的格式差不多的并不会被导入。
0 0
- 跟着辛星认识一下PHP的自动加载
- PHP的自动加载
- 跟着辛星学习PHP的文件目录操作
- 跟着辛星深入探讨一下PHP的反射机制
- 跟着辛星解读PHP中json的使用
- PHP-认识一下系统常量
- PHP类的自动加载
- php的自动加载机制
- php的自动加载类
- PHP的自动加载机制
- php类的自动加载
- 关于PHP的自动加载
- PHP类的自动加载
- PHP类的自动加载
- 跟着辛星一起了解下PHP的函数的性能
- 跟着辛星一起学PHP中的常用的字符串函数
- 认识一下
- 认识一下
- 配置VS2010具有代码提示功能
- java反射---获取类型信息
- 字符编码相关
- GetLogicalDriveStrings获取盘符
- POJ 2559 最大矩形面积 poj 3494
- 跟着辛星认识一下PHP的自动加载
- Android 异步加载网络图片并缓存到本地 软引用 学习分享
- hadoop编程小技巧(5)---自定义输入文件格式类InputFormat
- Android 获取Root权限之后的静默安装实现 代码示例分析
- android:duplicateParentState属性解释
- 数据结构之图(存储结构、遍历)
- java反射---获取类的构造方法
- Android前台画面和后台service之间通信的方法之Broadcast
- POJ 1107 W's Cipher (模拟解密)