为什么我会使用spl_autoload_register而不是包含或要求类和函数?

joh*_*nny 3 php

我不明白什么spl_autoload_registerautoload正在做什么.

为什么我不会只使用include或require?

我没有看到明确的答案.

Rik*_*kus 5

自动加载功能或类的优点是:

  1. 如果您有很多课程,则无需手动包含它们.以Zend Framework为例:您希望手动加载所有这些类.使用自动加载器,只需创建一个新类并开始在所有(启用自动加载器的)文件中使用它.
  2. 仅加载请求中实际使用的文件,可能会节省资源.如果您只使用50个文件中的10个,为什么要加载其他40个文件?
  3. 它迫使你有一个合理的目录布局(毕竟,你需要一些规则,所以你的自动加载器可以找到文件).
  4. 它可以(但不是定义)比手动包括更快.链接文章中的基准测试显示,如果您在页面上使用了所有可用课程的大约四分之三,那么您将"收支平衡".即使这样,自动加载也会让你的生活变得如此简单,即使它比人工包括的速度慢得多,你仍然应该这样做.