我不明白spl_autoload_register
或autoload
在做什么。
为什么我不直接使用include或require?
我没有看到一个明确的答案。
自动加载函数或类的优点是:
- 如果您有很多类,则不需要手动包含它们。以Zend Framework为例:您不希望手动加载所有这些类。使用自动加载器,只需创建一个新类,并开始在所有(启用了自动加载器)文件中使用它
- 只加载请求中实际使用的文件,这可能会节省资源。如果你只使用50个文件中的10个,为什么要加载其他40个
- 它迫使你有一个合理的目录布局(毕竟,你需要一些规则,这样你的自动加载器才能找到文件)
- 它可以(但不是根据定义)比手动包含更快。链接文章中的基准测试表明,如果你在页面上使用了大约四分之三的可用类,你就会"收支平衡"。即便如此,自动加载也会让你的生活变得更加轻松,即使它比手动加载慢得多,你仍然应该这样做