天天看点

PHP之SPL函数

注:spl,指SPL - Standard PHP Library 标准PHP类库

1.spl_autoload_register

spl_autoload_register-----注册__autoload()函数

说明:

bool spl_autoload_register([callback   $autoload_funciton])

将函数注册到SPL  __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。

如果在你的程序中已经实现了__autoload函数,它必须显示注册到__autoload栈中。因为spl_autoload_register()函数将ZendEngine中的__autoload函数取代为spl_autoload()或者spl_autoload_call()。

参数:

autoload_function---欲注册的自动装载函数。如果没有提供任何参数,则自动注册autoload的默认实现函数spl_autoload()。

返回值:

成功时返回TRUE,失败时返回FALSE。

例子:

function class_autoload($class) {
    $PATH = dirname(__FILE__) . '/model/' . $class . '.php';

    if(is_file($PATH)) {
        require_once($PATH);
        return true;
    }
    return false;
}
spl_autoload_register('class_autoload');
           

当在文件中初始化不明确的类时,系统将自动调用class_autoload($class)函数去加载指定的类所在的文件(如果存在的话)。

2.spl_autoload

(PHP5>=5.1.2)

spl_autoload --------__autoload()函数的默认实现。

说明:

void spl_autoload(string $class_name, [, string $file_extensions])

本函数提供了__autoload()的一个默认实现。如果不使用任何参数调用autoload_register()函数,则以后在进行__autoload()调用时会自动使用此函数,而不是声明的__autoload()函数。

参数:

class_name-----类名

file_extensions---文件扩展名

在默认情况下,本函数先将类名转换成小写,再在小写的类名后加上.inc或者.php的扩展名作为文件名,然后再所有的包含路径(include_path)中检查是否存在该文件。

返回值:无返回值。

3.spl_autoload_extensions

(PHP5>=5.1.2)

spl_autoload_extensions-----注册并返回spl_autoload函数使用的文件扩展名。

说明:

string spl_autoload_extensions([string $file_extensions])

本函数用来修改和检查__autoload()函数内置的默认实现函数spl_autoload()所使用的扩展名。

参数:

file_extensions----当不使用任何参数调用此函数时,它返回当前的文件扩展名的列表,不同的扩展名用逗号分隔。要修改文件扩展名列表,用一个逗号分隔的新的扩展名列表字符串来调用本函数即可。

注:默认的spl_autoload函数使用的扩展名是".inc,.php"。

返回值----逗号分隔的的spl_autoload函数的文件扩展名。

例子:

echo spl_autoload_extensions();
	echo spl_autoload_extensions(".php");
           

输出:第一个echo语句输出".inc,.php";

            第二个echo语句输出".php"。