Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我要使用spl_autoload_寄存器,而不是类和函数的include或require?_Php - Fatal编程技术网

Php 为什么我要使用spl_autoload_寄存器,而不是类和函数的include或require?

Php 为什么我要使用spl_autoload_寄存器,而不是类和函数的include或require?,php,Php,我不明白spl\u autoload\u register或autoload在做什么 为什么我不使用include或require 我没有看到明确的答案。自动加载函数或类的优点是: 如果您有很多类,则不需要手动包含它们。以Zend Framework为例:您不希望手动加载所有这些类。使用自动加载器,只需创建一个新类并开始在所有(启用自动加载器的)文件中使用它 只加载请求中实际使用的文件,这可能会节省资源。如果您只使用50个文件中的10个,为什么要加载其他40个 它迫使你有一个合理的目录布局(毕竟

我不明白
spl\u autoload\u register
autoload
在做什么

为什么我不使用include或require


我没有看到明确的答案。

自动加载函数或类的优点是:

  • 如果您有很多类,则不需要手动包含它们。以Zend Framework为例:您不希望手动加载所有这些类。使用自动加载器,只需创建一个新类并开始在所有(启用自动加载器的)文件中使用它
  • 只加载请求中实际使用的文件,这可能会节省资源。如果您只使用50个文件中的10个,为什么要加载其他40个
  • 它迫使你有一个合理的目录布局(毕竟,你需要一些规则,这样你的自动加载器才能找到文件)
  • (但不是根据定义)比手动包含更快。链接文章中的基准测试表明,如果您在页面上使用大约四分之三的可用类,您将“收支平衡”。即使这样,自动加载也会让你的生活变得更加轻松,即使它比手动加载慢很多,你也应该这样做
    三年后。。。PHP速度更快,服务器速度更快,互联网速度更快,所有这些都是正确的,其优点是不存在[重大]速度问题。只需享受无需实例化的功能,并因此拥有一个结构良好的代码库。我可以向您保证,在没有包含所有内容的情况下简单调用类的结构和能力是值得的。