PHP include/require:防止路径解析中的回退

PHP include/require:防止路径解析中的回退,php,require,fallback,php-include,Php,Require,Fallback,Php Include,如以下文件所述: 如果在include_路径中找不到该文件,include将在失败之前最终签入调用脚本自己的目录和当前工作目录 是否有任何设置来防止这种情况,并使其以某种方式失败?我想知道我的代码何时“认为”文件应该在它们不在的地方。(或者我至少可以在发生时添加一个警告?) 是否是使用文件_exists()的唯一选项?这感觉有点不对劲;我不想使用自己的include函数。等等,如果您不想应用默认的“有用”行为,您只需要自己提供一个文件路径 从 文件是根据给定的文件路径包含的,如果没有给定,则根据

如以下文件所述:

如果在include_路径中找不到该文件,include将在失败之前最终签入调用脚本自己的目录和当前工作目录

是否有任何设置来防止这种情况,并使其以某种方式失败?我想知道我的代码何时“认为”文件应该在它们不在的地方。(或者我至少可以在发生时添加一个警告?)


是否是使用文件_exists()的唯一选项?这感觉有点不对劲;我不想使用自己的include函数。

等等,如果您不想应用默认的“有用”行为,您只需要自己提供一个文件路径

文件是根据给定的文件路径包含的,如果没有给定,则根据 包括指定的路径

如果定义了路径-无论是绝对路径(以驱动器号或 \在Windows或/在Unix/Linux系统上)或相对于当前 目录(以.or.开头)-将忽略包含路径 总共例如,如果文件名以../开头,解析器将 在父目录中查找请求的文件


无法更改默认PHP函数的行为。您要么编写自己类型的include函数,要么使用类似file_exists()的东西进行检查。好的。这样看来有点奇怪。我只能接受这样一种可能性:我的代码在这些方面“技术上是错误的”,但无论如何都可以正常工作。我应该删除/标记此问题吗?我可以问一下为什么要使用include/require吗?为什么不使用自动加载器?我想我认为自动加载器会使事情复杂化,或者仅仅是“错误”的依赖。也许我不清楚,或者我误解了你。我说的是即使指定了路径,但没有找到文件时的行为。据我所知,只有在您不提供自己的路径时才会发生回退行为。因此,您可以给出一个路径,比如require_once(“./filename.php”),而不必担心任何涉及可能定义的include路径的回退。为了避免回退,请始终提供您自己的显式路径详细信息。啊,这似乎是正确的。我的经验可能会受到使用set_include_path函数的影响,我应该在原始问题中提到这一点,但我认为这不是一个相关的细节。