PHP函数spl_autoload_register()用法和__autoload()介绍
2015-01-24信息快讯网
又是框架冲突导致__autoload()失效,用spl_autoload_register()重构一下,问题解决
__autoload()的用法就不再说了,以前已经在我的WEB开发笔记中说过。PHP __autoload函数(自动载入类文件)的使用方法, 原文地址:http://www.jb51.net/article/29625.htm 。说一说,spl_autoload_register()的用法吧,很简单,可以这样理解,就是声明一个自定义__autoload(),你可以是A函数,也可以是B函数,想怎么样就怎么样,函数体的写法,当然要和__autoload()一样就OK 了。
当PHP找不到类文件会调用这个方法,当注册了自己的函数或方法时,PHP不会调用__autoload()函数,而会调用自定义的函数
spl_autoload_register(‘func_name');
spl_autoload_register(array(‘class_name','method_name'));
详细说明如下:
spl_autoload_register
(PHP 5>= 5.1.2)
spl_autoload_register ― 注册__autoload()函数
说明
bool spl_autoload_register ([ callback $autoload_function ] )
将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。
如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为
spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或
spl_autoload_call()。
参数
autoload_function
欲注册的自动装载函数。如果没有提供任何参数,则自动注册autoload的默认实现函数
spl_autoload()。
返回值
如果成功则返回 TRUE,失败则返回 FALSE。
注:SPL是Standard PHP Library(标准PHP库)的缩写。它是PHP5引入的一个扩展库,其主要功能包括autoload机制的实现及包括各种Iterator接口或类。SPL autoload机制的实现是通过将函数指针autoload_func指向自己实现的具有自动装载功能的函数来实现的。SPL有两个不同的函数spl_autoload, spl_autoload_call,通过将autoload_func指向这两个不同的函数地址来实现不同的自动加载机制。
代码如下:
test.class.php
<?php class abc{ function __construct() { echo 'www.chhua.com; } } ?>
load.php
<?php class LOAD { static function loadClass($class_name) { $filename = $class_name.".class.php"; if (is_file($filename)) return include_once $filename; } } /** * 设置对象的自动载入 * spl_autoload_register ― Register given function as __autoload() implementation */ spl_autoload_register(array('LOAD', 'loadClass')); $a = new Test();//实现自动加载,很多框架就用这种方法自动加载类 ?>
探讨fckeditor在Php中的配置详解
深入eAccelerator与memcached的区别详解
PHP autoload与spl_autoload自动加载机制的深入理解
spl_autoload_register与autoload的区别详解
php 深入理解strtotime函数的使用详解
phpcms模块开发之swfupload的使用介绍
php去除换行符的方法小结(PHP_EOL变量的使用)
php中使用__autoload()自动加载未定义类的实现代码
Fine Uploader文件上传组件应用介绍
Zend的AutoLoad机制介绍
说说PHP的autoLoad自动加载机制
PHP __autoload函数(自动载入类文件)的使用方法
PHP中的cookie不用刷新就生效的方法
PHP中创建空文件的代码[file_put_contents vs touch]
Trying to clone an uncloneable object of class Imagic的解决方法
Uncaught exception com_exception with message Failed to create COM object
PHP中strtotime函数使用方法分享
php curl常见错误:SSL错误、bool(false)
shopex主机报错误请求解决方案(No such file or directory)
PHP spl_autoload_register实现自动加载研究
PHP中去除换行解决办法小结(PHP_EOL)
yii框架源码分析之创建controller代码
PHP 调试工具Debug Tools
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
zend api扩展的php对象的autoload工具
PHP中uploaded_files函数使用方法详解
PHP中simplexml_load_string函数使用说明
PHP的autoload自动加载机制使用说明