欢迎来到百宝集!
免费实用的在线工具大全
查询

spl_autoload_register()函数—用法及示例

「 注册给定的函数作为 __autoload() 的实现,以便在使用未定义的类时自动加载所需的类 」


函数名称:spl_autoload_register() 

适用版本:PHP 5 >= 5.1.0, PHP 7

函数描述: spl_autoload_register() 函数注册给定的函数作为 __autoload() 的实现,以便在使用未定义的类时自动加载所需的类。

用法: spl_autoload_register ( callable $autoload_function = ? , bool $throw = ? , bool $prepend = ? ) : bool

参数:

  1. autoload_function(可选):要注册的自动加载函数。如果未提供,则将注册默认的 __autoload() 函数。
  2. throw(可选):如果设置为 true,则在找不到类时抛出异常。默认为 true。
  3. prepend(可选):如果设置为 true,则将函数添加到自动加载函数队列的开头,而不是末尾。默认为 false。

返回值: 成功时返回 true,失败时返回 false。

示例:

  1. 使用默认的 __autoload() 函数进行类的自动加载:

    spl_autoload_register();
    $obj = new MyClass(); // 自动加载 MyClass 类
    
  2. 注册自定义的自动加载函数:

    function custom_autoload($class_name) {
        include 'classes/' . $class_name . '.php';
    }
    spl_autoload_register('custom_autoload');
    $obj = new MyClass(); // 自动加载 classes/MyClass.php 文件
    
  3. 注册多个自动加载函数:

    function autoload1($class_name) {
        include 'classes/' . $class_name . '.php';
    }
    function autoload2($class_name) {
        include 'libs/' . $class_name . '.php';
    }
    spl_autoload_register('autoload1');
    spl_autoload_register('autoload2');
    $obj = new MyClass(); // 先尝试自动加载 classes/MyClass.php 文件,如果找不到则尝试加载 libs/MyClass.php 文件
    
  4. 设置 throw 参数为 false,避免抛出异常:

    function custom_autoload($class_name) {
        include 'classes/' . $class_name . '.php';
    }
    spl_autoload_register('custom_autoload', false);
    $obj = new MyClass(); // 如果找不到 MyClass 类,不会抛出异常
    
  5. 使用 prepend 参数将函数添加到自动加载函数队列的开头:

    function autoload1($class_name) {
        include 'classes/' . $class_name . '.php';
    }
    function autoload2($class_name) {
        include 'libs/' . $class_name . '.php';
    }
    spl_autoload_register('autoload1');
    spl_autoload_register('autoload2', true); // autoload2 函数将会在 autoload1 函数之前调用
    $obj = new MyClass(); // 先尝试自动加载 libs/MyClass.php 文件,如果找不到则尝试加载 classes/MyClass.php 文件
    
补充纠错
上一个函数: spl_autoload_unregister()函数
下一个函数: spl_autoload_functions()函数
热门PHP函数