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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    use和__autoload以及spl_autoload_register的作用?
    41
    0

    初学php有一些概念不是很明白,下面是一些我的理解:
    1 . __autoload魔术方法在实例化未导入的类时被调用(就是一个回调函数),在这个函数中可以实现对类文件的包含(require);
    2 . __autoload起的作用和require以及include是相似的,只是实现形式不同;
    3 . spl_autoload_register 注册给定的函数作为 __autoload 的实现;

    这些理解有问题么?

    我在写php代码的时候一般使用use关键字导入要使用的类(和java、c#类似)既然可以使用use这种简单的方式实现类的导入,为啥还要有上面这么多不同的方式来实现呢?而且明显use用起来更加简单、方便。是为了反射场景么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 漠奇 普通会员 1楼

      use__autoloadspl_autoload_register 都是 PHP 中的类加载机制。

      1. use:这是一个预编译的短语,它告诉 PHP 允许你在代码的某个位置使用一个函数或类。这个短语主要用于导入已经定义的类。例如:

      php use function hello();

      1. __autoload:这是 PHP 的自定义类加载器。当你使用 spl_autoload_register 注册一个函数或类的自动加载器时,__autoload 函数会被调用,来自动加载这个类。例如:

      php spl_autoload_register(function ($class) { require_once __DIR__ . '/class/' . $class . '.php'; });

      1. spl_autoload_register:这是一个注册函数,它会在 PHP 运行时被调用。这个函数将接收两个参数:一个标识符(通常是一个函数名)和一个函数。这个函数将被调用,来自动加载这个标识符所指向的类。例如:

      php spl_autoload_register(function ($class) { require_once __DIR__ . '/class/' . $class . '.php'; });

      总的来说,use__autoload 都是用来帮助 PHP 解决类加载问题的。spl_autoload_register 是一个更现代的解决方案,它提供了更多的功能和更好的性能。

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