如何正确地要求PHP文件

如何正确地要求PHP文件,php,require,Php,Require,我在我的网站上使用了两个主要的PHP文件作为脚本。一个专注于从MySQL数据库访问数据,另一个包含网站所需的功能。在某些函数中(在函数文件中),我需要从MySQL文件调用函数。我不明白如何正确地要求这些文件,以便它们在必要时可用 include 'scripts/MySQL.php'; include 'scripts/functions.php'; 位于页面文件的顶部(我直接使用两个文件中的函数)。 然后,当我需要在functions.php中使用MySQL函数时,如果我不需要MySQL.p

我在我的网站上使用了两个主要的PHP文件作为脚本。一个专注于从MySQL数据库访问数据,另一个包含网站所需的功能。在某些函数中(在函数文件中),我需要从MySQL文件调用函数。我不明白如何正确地要求这些文件,以便它们在必要时可用

include 'scripts/MySQL.php';
include 'scripts/functions.php';
位于页面文件的顶部(我直接使用两个文件中的函数)。 然后,当我需要在
functions.php
中使用MySQL函数时,如果我不需要
MySQL.php
位于
functions.php
文件顶部,MySQL函数将为空,但如果我需要,我会得到以下错误:

致命错误:无法在第16行的…/scripts/MySQL.php中重新声明getUserInfo()(以前在…/scripts/MySQL.php:2中声明)。这是getUserInfo(第2行是发布的第一行,第16行是最后一行):

require
如何处理文件间依赖关系?为什么我的代码行为如此怪异/我该如何修复它

另外,如果我想从另一个文件访问变量,我是否必须在每个使用变量的函数中都需要该文件,或者我可以要求它位于包含函数的文件的顶部(后者似乎不起作用)

抱歉,如果这个问题读起来有点混乱。我真的想不出一个好的方法来描述我的问题(尤其是因为我自己不确定我是否理解这个问题)。

使用或避免重新说明您的函数

require_once 'scripts/MySQL.php';
require_once 'scripts/functions.php';
require_once语句与require相同,只是PHP将 检查文件是否已包含,如果已包含,则不包含 (要求)再来一次


不要那样做。花些时间阅读以下内容:


确保遵守所有PSR。

是否也包括其他文件中的文件?您似乎不止一次包含文件。你能提供完整的代码吗?因为functions.php需要访问Mysql.php,所以你包含了两次Mysql.php,但这产生了一个致命的错误。FuzzyTree
require_once
发布的答案应该可以解决这个问题,只需遵循PSR-0,您就安全了。但是,如果我两次声明它以获得致命错误,那么如果我不需要它,为什么MySQL函数为空?这似乎与已经需要的假设相矛盾。不要包含或需要这样的文件。你会在纯粹的地狱里。使用真实类和适当的自动加载。这就是像PSR这样的标准存在的原因。如果你不得不求助于
require_once
来避免一个文件被多次加载,这样你的代码就可以发挥作用,那么你很可能已经失去了对代码中发生的事情的控制。你应该后退一步,重新评估正在发生的事情,然后正确地编写代码。@SverriM.Olsen我最终没有使用它,我更正了我的代码,现在一切都正常了。这是一个常见的例子,一个正确的答案如何被否决只是为了好玩+1来修正一个偏移量不幸的是,巨魔们会变成巨魔。
require_once 'scripts/MySQL.php';
require_once 'scripts/functions.php';