- 浏览: 156298 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
NickWar:
脚本很好用,感谢楼主分享
但我只能导出10篇文档的xml ...
原创使用google reader + PHP将iteye博客数据导入到wordpress中 -
再逢山水:
ninedoors 写道这位仁兄,还有一个问题,感觉挺诡异的, ...
ThinkPHP中M和D函数的区别 -
ninedoors:
这位仁兄,还有一个问题,感觉挺诡异的,却不知道原因。我在用th ...
ThinkPHP中M和D函数的区别 -
柏新星:
谢谢 最起码简单的了解了一些 呵呵
stdClass的介绍
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指向这两个不同的函数地址来实现不同的自动加载机制。
如果同时用spl_autoload_register注册了一个类的方法和__autoload函数,
那么,会根据注册的先后,如果在第一个注册的方法或函数里加载了类文件,就不会再执行第二个被注册的类的方法或函数。反之就会执行第二个被注册的类的方法或函数。
(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指向这两个不同的函数地址来实现不同的自动加载机制。
classLOAD { staticfunctionloadClass($class_name) { $filename= $class_name.".class.php"; $path= "include/".$filename if(is_file($path)) returninclude$path; } } /** * 设置对象的自动载入 * spl_autoload_register — Register given function as __autoload() implementation */ spl_autoload_register(array('LOAD', 'loadClass')); /** *__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法 * 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list */ spl_autoload_register( '__autoload');
如果同时用spl_autoload_register注册了一个类的方法和__autoload函数,
那么,会根据注册的先后,如果在第一个注册的方法或函数里加载了类文件,就不会再执行第二个被注册的类的方法或函数。反之就会执行第二个被注册的类的方法或函数。
<?php class autoloader { public static $loader; public static function init() { if (self::$loader == NULL) self::$loader = new self (); return self::$loader; } public function __construct() { spl_autoload_register ( array ($this, 'model' ) ); spl_autoload_register ( array ($this, 'helper' ) ); spl_autoload_register ( array ($this, 'controller' ) ); spl_autoload_register ( array ($this, 'library' ) ); } public function library($class) { set_include_path ( get_include_path () . PATH_SEPARATOR . '/lib/' ); spl_autoload_extensions ( '.library.php' ); spl_autoload ( $class ); } public function controller($class) { $class = preg_replace ( '/_controller$/ui', '', $class ); set_include_path ( get_include_path () . PATH_SEPARATOR . '/controller/' ); spl_autoload_extensions ( '.controller.php' ); spl_autoload ( $class ); } public function model($class) { $class = preg_replace ( '/_model$/ui', '', $class ); set_include_path ( get_include_path () . PATH_SEPARATOR . '/model/' ); spl_autoload_extensions ( '.model.php' ); spl_autoload ( $class ); } public function helper($class) { $class = preg_replace ( '/_helper$/ui', '', $class ); set_include_path ( get_include_path () . PATH_SEPARATOR . '/helper/' ); spl_autoload_extensions ( '.helper.php' ); spl_autoload ( $class ); } } //call autoloader::init (); ?>
发表评论
-
PHP stream_context_create()作用和用法分析
2013-04-03 10:28 0创建并返回一个文本数据流并应用各种选项,可用于fopen(), ... -
PHP - Iterator接口的解释
2012-12-06 14:23 902Iterator的接口定义如下: Iterato ... -
php中exec,system及passthru等函数用法
2012-08-13 10:49 1071由于PHP基本是用于WEB程 ... -
HTTP协议状态码详解(HTTP Status Code)
2012-08-13 10:41 1016使用php或者javascript都会 ... -
PHP 程序员学数据结构与算法之《栈》
2012-11-24 17:01 1253介绍 “要成高 ... -
MySQL字段类型
2012-03-13 12:21 893MySQL支持大量的列类型 ... -
20个数据库设计的最佳实践
2012-02-27 10:33 11121、使用定义明确的表或列名,并保持一致(例如,School、S ... -
PHP中curl_setopt的CURLOPT系列 选项(转)
2012-01-17 15:41 3452curl_setopt()函数将为一个CURL会话设置选项。 ... -
2011年最热门的开源PHP项目回顾
2012-01-01 12:07 1177本文来自于对活跃在SourceForge和GitHub上的项目 ... -
PHP开发者常犯的10个MySQL错误
2012-01-01 12:03 916数据库是WEB大多数应用 ... -
PHP XML操作类DOMDocument
2011-08-29 14:18 1375不得不自已写一个.XML ... -
二十五个顶级PHP模板引擎整理
2011-08-09 17:20 1050为了找到一个好的模板引擎,我在互联网上进行搜索,目前已经整理出 ... -
php接收二进制数据流转换成图片
2011-08-04 17:49 11458<?php /** * 图片类 * @au ... -
PHP性能优化贴士——产生高度优化代码
2011-07-19 09:43 988PHP是一种在服务器端执 ... -
PHP register_shutdown_function函数详解
2011-07-18 11:47 1427脚本时常死掉,而且并不总是那么好看. 我们可不想给用户 ... -
PHP程序员最常犯的11个MySQL错误
2011-06-30 15:58 719对于大多数web应用来说,数据库都是一个十分基础性的部 ... -
简述MVC思想与PHP如何实现MVC
2011-06-20 11:17 888我相信已经有很多这样 ... -
PHP中的生成XML文件的4种方法
2011-06-15 11:56 2513<?xml version="1.0&qu ... -
stdClass的介绍
2011-06-02 10:11 1101在PHP开发中,很多时候都会看到别人的代码里有 $use ... -
【转】PHP工程师面临的成长瓶颈
2011-05-26 16:39 819作为Web开发中应用最广 ...
相关推荐
`spl_autoload_register()`函数本身不返回任何值,但可以传递一个可选参数`$autoload_function`,用于指定要注册的自动加载函数。如果省略这个参数,PHP会自动注册`spl_autoload()`。值得注意的是,`spl_autoload_...
spl_autoload_register(PHP 5 >= 5.1.2)spl_autoload_register — 注册__autoload()函数说明bool spl_autoload_register ([ ...因为spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload
需要注意的是,如果你的代码中已经有了 `__autoload` 函数,你需要将其显式地注册到自动加载栈中,因为 `spl_autoload_register()` 会替换掉 Zend Engine 中的 `__autoload` 函数。 SPL(Standard PHP Library)是...
为了使 `spl_autoload` 自动起作用,你需要使用 `spl_autoload_register` 函数。`spl_autoload_register` 注册一个或多个自动加载函数到一个内部维护的队列中。当你首次调用 `spl_autoload_register()` 且不传递参数...
PHP 中 spl_autoload_register() 函数用法实例详解 PHP 中的自动加载机制是指在实例化一个未定义的类时,系统自动加载该类的类文件。spl_autoload_register() 函数是 PHP 中的一个自动加载函数,用于注册自动加载...
PHP 中 spl_autoload_register() 函数用法实例详解 spl_autoload_register() 函数是 PHP 中用于自动加载类的函数,作用类似于 __autoload 函数。下面我们将详细介绍 spl_autoload_register() 函数的用法实例。 一...
spl_autoload_register('autoload_function'); ``` 在这个例子中,`$class_name`是未定义的类名,我们将其转换为文件路径,然后尝试包含对应类的文件。如果文件不存在,将输出错误信息。 三、大写字母位置查找算法...
`spl_autoload_register()` 是PHP 5.3引入的一种更灵活的自动加载机制,它可以注册多个自定义的自动加载函数,并且可以提供更加灵活的类文件搜索策略。 **1. 基础用法** ```php // 注册自动加载函数 spl_autoload_...
替代__autoload()函数的是spl_autoload_register()函数,它允许注册多个自动加载函数,这极大地方便了项目中的自动加载机制设置。spl_autoload_register()可以接受一个回调函数、一个全局函数名、一个类的静态方法...
另外,从PHP5.3开始,推荐使用 `spl_autoload_register` 函数替代 `__autoload`,因为 `spl_autoload_register` 允许注册多个自动加载函数,增加了灵活性和可扩展性。这对于大型项目或者使用第三方库时尤其有用,...
`spl_autoload_register` 也可以接受方法(类的成员函数)作为参数,例如: ```php spl_autoload_register(array($this, 'model')); spl_autoload_register(array(__CLASS__, 'controller')); ``` 这里,`$this` ...
2. spl_autoload_register函数:由于__autoload函数只能定义一个,这显然无法满足大型项目中多种类加载需求的情况。因此,PHP 5.3引入了spl_autoload_register函数,它允许注册多个自动加载函数,从而可以定义多种...
1. spl_autoload_register()函数:这是一个PHP内置函数,它允许开发者注册一个或多个自定义的自动加载函数。PHP会按照注册顺序依次调用这些函数,直到找到一个类定义。使用此函数是实现autoload机制的主要方式。 2. ...
PHP提供了一个魔术方法__autoload()用于自动加载类文件,但PHP5.3后,建议使用spl_autoload_register()函数。 __autoload()函数在需要实例化一个尚未被定义的类时被PHP调用,它接收一个包含类名的字符串作为参数。...
不过,随着PHP的版本发展,推荐使用更现代的`spl_autoload_register()`函数替代`__autoload()`,因为它允许注册多个自动加载函数,并且更易于管理和扩展。此外,配合PSR-4或PSR-0等命名规范,可以实现更高效的自动...