PHP 入门:spl_autoload_register 与 autoload 的区别
以下是对 spl_autoload_register 与 autoload 的区别,供大家参考下
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 指向这两个不同的
函数地址来实现不同的自动加载机制。
范例
设我们有一个类文件 A.php,里面定义了一个名字为 A 的类:
代码如下:
<?php
class
A
{
public
function
__construct()
{
echo
'Got it.';
}
}
然后我们有一个 index.php 需要用到这个类 A,常规的写法就是
代码如下:
<?php
require
('A.php');