spl_autoload
__autoload()的默认实现
PHP 5.1.0 及更高版本
spl_autoload 是 PHP 的一个内置函数,用于自动加载类文件。当你试图实例化一个未被加载的类时,该函数会自动调用,以便在需要时加载相应的类文件。这使得你可以避免手动调用 require/include 来加载类文件。
bool spl_autoload ( callable $autoload_function )
$autoload_function(可选):指定一个自定义的自动加载函数或方法。这个参数是一个可调用的函数,用于处理类文件的加载。若省略该参数,PHP 会使用内置的自动加载机制。
返回值为布尔值。如果设置了自定义的自动加载函数,且该函数成功加载类文件,则返回 true;如果发生错误则返回 false。
以下是一个示例,演示了如何使用 spl_autoload 设置自定义的类加载函数:
function my_autoloader($class) { include $class . '.class.php'; } <p>spl_autoload_register('my_autoloader');</p> <p>// 假设 "Test.class.php" 文件包含类 Test<br> $obj = new Test(); // 自动调用 my_autoloader 函数加载 Test.class.php<br>
在这个示例中,我们首先定义了一个名为 my_autoloader 的函数,用来加载类文件。在这个例子中,我们假设每个类的文件名与类名相同,并且类文件具有 ".class.php" 扩展名。接着,我们调用 spl_autoload_register 函数,传入 my_autoloader 函数作为自动加载函数。当实例化一个类(例如 Test 类)时,PHP 会自动调用 my_autoloader 函数加载 Test.class.php 文件。