账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    spl_autoload_register自动加载函数的参数问题。
    38
    0

    源码如下:

    class ComposerAutoloaderInit
    {
        private static $loader;
    
        public static function loadClassLoader($class)
        {
            if ('Composer\Autoload\ClassLoader' === $class) {
                require __DIR__ . '/ClassLoader.php';//注意这一行。
            }
        }
    
        public static function getLoader()
        {
            if (null !== self::$loader) {
                return self::$loader;
            }
    
            spl_autoload_register(array('ComposerAutoloaderInit', 'loadClassLoader'), true, true);
            self::$loader = $loader = new \Composer\Autoload\ClassLoader();
            .
            .
            //省略很多代码
            .
            .

    在我调用 ComposerAutoloaderInit::getLoader() 方法的时候,发现 loadClassLoader 中的 if 执行了(有注释的那行)。但是 if 有条件判断 'ComposerAutoloadClassLoader' === $class ,而 spl_autoload_register 注册的时候似乎没有传递 $class 进去。请 $class 是如何定义的?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 云与南溪 普通会员 1楼

      在PHP中,spl_autoload_register函数用于在自定义的加载器中注册一个函数,这个函数将在自动加载器被触发时被调用。

      这个函数的参数是一个数组,其中的每个元素都是一个对象,该对象将被自动加载器加载。

      例如,假设你有一个自定义的加载器,它的工作方式是检查一个文件是否存在,如果存在,它将加载这个文件。你可以在spl_autoload_register函数中注册这个自定义的加载器。

      ```php function custom_loader($class_name) { // 实现你的加载器代码 }

      spl_autoload_register(custom_loader); ```

      在这个例子中,custom_loader函数将被自动加载器加载,当这个文件被创建或修改时。

      注意,你需要确保你的函数的名称与你的自定义加载器的名称相匹配。如果你的函数名称不同,那么PHP将无法正确地识别你的函数。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部