PHP进阶学习之spl_autoload_register与__autoload方法使用
2012-07-10 13:24
489 查看
spl_autoload_register()函数应该是主流框架使用最多的也是非常核心的函数之一,可实现自动注册函数和类,实现类似__autoload() 函数功能,简化了类的调用与加载,提高了工作的效率。
支持版本:PHP 5 >= 5.1.2
至于效率问题。php手册上有如此之话:
bool spl_autoload_register ([ callback$autoload_function ] )
将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或spl_autoload_call()。
在补充下:
__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法
* 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list
spl_autoload_register( '__autoload' );
此外我们还可以使用我们自定义的加载方法:
第一种函数式:
第二种类式:
实例:CI框架实现类加载的同时,其对应的model也生成。
支持版本:PHP 5 >= 5.1.2
至于效率问题。php手册上有如此之话:
bool spl_autoload_register ([ callback$autoload_function ] )
将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或spl_autoload_call()。
__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法
* 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list
spl_autoload_register( '__autoload' );
此外我们还可以使用我们自定义的加载方法:
第一种函数式:
相关文章推荐
- php中SPL spl_autoload_register与__autoload方法使用
- 【小白笔记】PHP学习之路 (22) --对象 __autoload spl_autoload_register 自动载入
- php 面向对象学习之 __autoload和spl_autoload_register()函数
- php的autoload大致可以使用两种方法:__autoload和spl方法。这两种方法又各有不同的几种使用方法
- 【PHP】__autoload()魔术方法与spl_autoload_register
- php spl_autoload_register函数使用
- PHP 使用__autoload()方法避免频繁使用require()函数。
- php面向对象(OOP)—spl_autoload_register()注册自定义的自动加载函数
- PHP自动加载类—__autoload()和spl_autoload_register() (补充)
- php spl_autoload_register函数接口
- 学习PHP面向对象(四)_get(),_set()的用法 这种方法不推荐使用
- PHP中spl_autoload_register()和__autoload()区别
- PHP SPL使用方法和他的威力
- PHP中的__autoload()和spl_autoload_register()笔记
- php cookie使用方法学习笔记分享
- php手记-获得文件或文件夹的上级目录、spl_autoload_register、__autoload
- PHP spl_autoload_register()
- PHP的spl_autoload_register用法
- php的spl_autoload_register与zend framework的Zend_Loader_Autoloader
- PHP自动加载 spl_autoload_register