Backend Development 4 min read

PHP Autoload Functions: Built‑in __autoload and SPL spl_autoload_register

This article explains PHP's autoload mechanisms, covering the built‑in __autoload function and the SPL spl_autoload_register approach, with code examples, usage details, advantages, drawbacks, and how to implement custom loaders for efficient class loading.

php中文网 Courses
php中文网 Courses
php中文网 Courses
PHP Autoload Functions: Built‑in __autoload and SPL spl_autoload_register

In PHP, autoload functions automatically load required classes and functions, reducing code duplication and improving readability.

PHP provides two main autoload mechanisms:

Built‑in autoload function __autoload() for simple loading.

SPL autoloader using spl_autoload_register() to register custom loaders.

Built‑in Autoload Function

The __autoload() function receives the class name as its sole parameter and should include the corresponding file to return the class object.

Example:

<code>class Foo {
    public function bar() {
        echo "bar";
    }
}

function __autoload($class_name) {
    // 加载类文件
    include __DIR__ . "/{$class_name}.php";
}

$foo = new Foo(); // 自动加载类
</code>

The drawback of __autoload() is that it must be defined in every file that requires autoloading, increasing code volume.

SPL Autoloader

The SPL provides spl_autoload_register() , which registers a custom autoload function. It accepts two parameters: the autoload callback and its priority.

Example of registering a custom loader that includes class files from the filesystem:

<code>function my_autoload($class_name) {
    // 加载类文件
    include __DIR__ . "/{$class_name}.php";
}

spl_autoload_register(my_autoload);

$foo = new Foo(); // 自动加载类
</code>

Custom loaders can be tailored to load classes from various sources such as the filesystem, remote servers, or databases.

Summary

PHP autoload functions enhance code reuse and readability and are widely used in real‑world development.

Recommended PHP Learning Resources

Vue3+Laravel8+Uniapp小白到实战开发教程

Vue3+TP6+API 社交电商系统开发教学

swoole从入门到精通推荐课程

《Workerman+TP6即时通讯聊天系统》限时秒杀!

backendWeb DevelopmentphpCodeAutoloadSPL
php中文网 Courses
Written by

php中文网 Courses

php中文网's platform for the latest courses and technical articles, helping PHP learners advance quickly.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.