什么是自动加载?
每次您要在PHP项目中使用新类时,首先都需要包含此类(使用include或require语言构造,对,这不是函数)。 但是,如果定义了__autoload函数,则包含将自行处理。
include "classes/class.Foo.php";
$foo = new Foo;
$foo->start();
$foo->stop();
基本自动加载示例
function __autoload($class_name)
{
require_once $DOCUMENT_ROOT.“classes/class.”.$class_name.“.php”;
}
$foo = new Foo;
$foo->start();
$foo->stop();
PHP官方
其他
更新资料
PHP 5引入了魔术函数__autoload(),当您的代码引用尚未加载的类或接口时,该函数会自动调用。
__autoload()函数的主要缺点是只能提供一个自动装带器。 PHP 5.1.2引入了spl_autoload_register(),它允许您注册多个自动加载器功能,将来将不建议使用__autoload()函数。
spl_autoload_register()的引入使程序员能够创建自动加载链,自动加载链是可以调用以尝试加载类或接口的一系列功能。 例如:
function autoloadModel($className) {
$filename = "models/" . $className . ".php";
if (is_readable($filename)) {
require $filename;
}
}
function autoloadController($className) {
$filename = "controllers/" . $className . ".php";
if (is_readable($filename)) {
require $filename;
}
}
spl_autoload_register("autoloadModel");
spl_autoload_register("autoloadController");