php 自动加载对象
2010-09-02 11:12
387 查看
很多开发者会在写面向对象的程序时require或者要include一大堆有用没用的类文件,很多人写着会很烦,当然看的人也烦,后来来二次开发的人更烦,是呀,有谁知道那个包含进来的文件有用,那个没用。
呵呵,不过在php5以后这个问题得到了很好的解决。他引入了自动加载对象 __autoload
函数,有了这个函数,开发者就再也不用加载很多
类文件了。
呵呵,可能一开始看的时候不大好理解,我来举个例子吧。
首先,我们有一个A.class
然后我们在test.php引用这个A中的hello
输出会是:
hello,I am A
看到了吧,我并没有include或者require class A,但是我们还是调用了A 类里的方法。
好了,但是如果我说我就是个有点拧巴的人,呵呵,我就不想调用__autoload 函数,那么php还给你提供了另一个函数,那就是spl_autoload_register
,你可以用它来注册我们自己的autoload函数,怎么用呢,我来举个例子吧。
首先 A.class 不变,我就不写了
变化的是调用的文件。test.php,内容如下
看见我改了什么,呵呵,其实也没改啥,及时用sql_autoload_register定义了自己的__autoload 函数:myauto.当然输出仍然是:
hello,I am A
或者你还可以这么调用(仍然用test.php)举例:
备注:别忘了声明myauto方法的时候加上 static
,为啥偶一时也没弄明白,呵呵,那位高人帮偶看看吧。好了就说这么多。
欢迎高人指点之
呵呵,不过在php5以后这个问题得到了很好的解决。他引入了自动加载对象 __autoload
函数,有了这个函数,开发者就再也不用加载很多
类文件了。
呵呵,可能一开始看的时候不大好理解,我来举个例子吧。
首先,我们有一个A.class
然后我们在test.php引用这个A中的hello
输出会是:
hello,I am A
看到了吧,我并没有include或者require class A,但是我们还是调用了A 类里的方法。
好了,但是如果我说我就是个有点拧巴的人,呵呵,我就不想调用__autoload 函数,那么php还给你提供了另一个函数,那就是spl_autoload_register
,你可以用它来注册我们自己的autoload函数,怎么用呢,我来举个例子吧。
首先 A.class 不变,我就不写了
变化的是调用的文件。test.php,内容如下
看见我改了什么,呵呵,其实也没改啥,及时用sql_autoload_register定义了自己的__autoload 函数:myauto.当然输出仍然是:
hello,I am A
或者你还可以这么调用(仍然用test.php)举例:
备注:别忘了声明myauto方法的时候加上 static
,为啥偶一时也没弄明白,呵呵,那位高人帮偶看看吧。好了就说这么多。
欢迎高人指点之
相关文章推荐
- php-自动加载对象
- PHP面向对象自动加载机制原理与用法分析
- php基础知识:类与对象(2) 自动加载对象
- 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间
- PHP面向对象深入研究之【命名空间】与【自动加载类】
- PHP中spl_autoload_register函数的用法(类的对象自动加载)
- PHP之自动加载对象
- PHP面向对象2-类的自动加载
- php 面象对象类自动加载
- php面向对象全攻略 (十七) 自动加载类
- php基础知识:类与对象(2) 自动加载对象
- PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
- PHP面向对象自动加载类文件
- PHP的类和对象(二)自动加载
- php面向对象中的单例与静态方法的对比,以及关于class自动加载的分析
- php面向对象笔记9 类的自动加载
- PHP面向对象自动加载机制原理与用法分析
- php 自动加载对象 autoload
- PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
- php面向对象 自动加载类 对象串行化 多态的应用