首页 > 解决方案 > 为什么 PHP include_once 会成功但 require_once 在同一个文件上会失败?

问题描述

我有一个使用 require_once 加载模块的 PHP 脚本。它由 CRON 每小时运行一次并且工作正常自从添加另一个模块后,它仍然可以在一夜之间正常工作(可能在负载较低时),但在白天经常失败(崩溃)。我在模块中的函数中添加了一些监控代码,以查看它是否失败,并且它肯定是它尝试加载模块的地方。为了确定脚本无法加载模块的原因,我将 require_once 更改为 include_once。出于某种原因,这似乎解决了问题 - 模块中的功能正在执行。谁能解释为什么 require_once 无法加载模块但 include_once 成功?以前有人遇到过这个问题吗?

标签: phprequire-onceinclude-once

解决方案


require 和 include 函数执行相同的任务,小的区别是:

  • 当指定的文件位置无效或出现任何错误时, require将产生一个致命的 (E_COMPILE_ERROR) 级错误
  • include将生成警告(E_WARNING)并继续执行代码。

请参阅:单击要求包含

所以你没有解决问题,你只是将错误级别从错误转换为警告,这就是你的脚本工作的原因。


推荐阅读