(PHP 5 >= 5.1.0, PHP 7)
spl_autoload_register — ע������ĺ�����Ϊ __autoload ��ʵ��
$autoload_function
[, bool $throw
= true
[, bool $prepend
= false
]]] ) : bool������ע�ᵽSPL __autoload���������С�����ö����еĺ�����δ��������ǡ�
�������ij������Ѿ�ʵ����__autoload()��������������ʽע�ᵽ__autoload()�����С���Ϊ spl_autoload_register()�����ὫZend Engine�е�__autoload()����ȡ��Ϊspl_autoload()��spl_autoload_call()��
�����Ҫ���� autoload ������spl_autoload_register() �����˴������� ��ʵ���ϴ����� autoload �����Ķ��У�������ʱ��˳�����ִ�С����֮�£� __autoload() ֻ���Զ���һ�Ρ�
autoload_function
��ע����Զ�װ�غ��������û���ṩ�κβ��������Զ�ע�� autoload ��Ĭ��ʵ�ֺ���spl_autoload()��
throw
�˲��������� autoload_function
���ɹ�ע��ʱ��
spl_autoload_register()�Ƿ��׳��쳣��
prepend
����� true��spl_autoload_register() ����Ӻ���������֮�ף������Ƕ���β����
�ɹ�ʱ���� TRUE
�� ������ʧ��ʱ���� FALSE
��
�汾 | ˵�� |
---|---|
5.3.0 | �����������ռ��֧�֡� |
5.3.0 |
����� prepend ������
|
Example #1 spl_autoload_register() ��Ϊ __autoload() ���������
<?php
// function __autoload($class) {
// include 'classes/' . $class . '.class.php';
// }
function my_autoloader($class) {
include 'classes/' . $class . '.class.php';
}
spl_autoload_register('my_autoloader');
// ���ߣ��� PHP 5.3.0 �����ʹ��һ����������
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
});
?>
Example #2 class δ�ܼ��ص� spl_autoload_register() ����
<?php
namespace Foobar;
class Foo {
static public function test($name) {
print '[['. $name .']]';
}
}
spl_autoload_register(__NAMESPACE__ .'\Foo::test'); // �� PHP 5.3.0 ��
new InexistentClass;
?>
�������̵���������ڣ�
[[Foobar\InexistentClass]] Fatal error: Class 'Foobar\InexistentClass' not found in ...