gpt4 book ai didi

php - 哪个更好 : require_once? 或 if (!defined ('FOOBAR' )) require?还是完全不同的东西?

转载 作者:可可西里 更新时间:2023-11-01 00:53:56 26 4
gpt4 key购买 nike

假设 PHP 版本 >= 5.2,这是一个更好的管理解决方案,包括:

require_once DEFPATH . 'config.inc.php';

if (!defined('FOOBAR')) require DEFPATH . 'config.inc.php';

还是完全不同的东西?

站点不使用前端 Controller 或自动加载器。需要包含的文件的典型数量为 3 - 8。

我在这里和其他地方听说过,require_once 会增加开销并且不适合缓存。但我也听说在 PHP 的更高版本中,少量的 require_once 语句在实践中是可以的。

还必须有一些与检查是否定义了某些内容相关的开销,但这可能不是一个问题。

一般来说,哪种做法更好,为什么?

最佳答案

是的,require_once() 会带来 CPU 和内存开销,但对性能没有任何影响。事实上,这是一个非常有效的操作,因为 PHP 只进行一次哈希表查找来确定该文件是否已被解析。不要像您的 !defined('FOOBAR') 示例那样给自己带来任何不必要的麻烦,因为它只是以不太优雅的方式做同样的事情。

在 PHP 请求期间需要时间的是文件路径查找,然后是后续的解析步骤。运行时确定您之前是否已经解析过文件所需的资源量可以忽略不计。

您可以采取一些措施来使您的请求运行得更快:

  • 避免在 include() 和 require() 中使用不必要的长搜索路径
  • 可以使用绝对包含路径
  • 仅在需要时包含内容
  • 缓存大的输出片段
  • 缓存复杂的查询结果
  • 编写简洁的代码,将很少使用的功能卸载到按需包含的源文件中

如果您正在使用代码缓存或某种运行时优化器,请阅读手册 - 它们具有不同的策略,这些策略实际上可能会损害性能或引入错误,具体取决于您的代码。

最后一个建议:提防过早的优化!在服务器上花费 0 到 50 毫秒的请求在用户端几乎无法区分。

关于php - 哪个更好 : require_once? 或 if (!defined ('FOOBAR' )) require?还是完全不同的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com