是否可以为';需要一次';等等,在PHP中?

是否可以为';需要一次';等等,在PHP中?,php,Php,我刚刚用PHP5.3.8在Windows7上的Xampp下编写并测试了我的第一个非爱好WordPress插件,并将其部署到我的博客主机上,这也是一个Windows环境,但我不知道是什么 我的第一个大惊喜是我无法让相对路径在require\u once中工作,所以我切换了几个调用以使用绝对路径-URL文件访问被禁用-但我想在这里插入一个抽象层 我如何包装require\u once将决策集中于如何将路径构建到一个位置,例如,构建路径,然后将该路径的源注入解释队列或其他位置的my\u require

我刚刚用PHP5.3.8在Windows7上的Xampp下编写并测试了我的第一个非爱好WordPress插件,并将其部署到我的博客主机上,这也是一个Windows环境,但我不知道是什么

我的第一个大惊喜是我无法让相对路径在
require\u once
中工作,所以我切换了几个调用以使用绝对路径-URL文件访问被禁用-但我想在这里插入一个抽象层


我如何包装
require\u once
将决策集中于如何将路径构建到一个位置,例如,构建路径,然后将该路径的源注入解释队列或其他位置的
my\u require\u once
。我应该考虑一下吗


我知道我可以将路径确定封装到函数中,并在路径参数中将该函数用于
require
,但我希望能够“破坏”现有的
require
调用。

在配置文件中定义一个基本URL,并在require\u once语句中附加相对路径:

require_once(BASE_URI . '/myfolder/myfile.php');

在配置文件中定义基本URL,并在require_once语句中附加相对路径:

require_once(BASE_URI . '/myfolder/myfile.php');

除非您想以某种更复杂的方式操作相对路径,而不仅仅是尝试预先设置一些绝对路径,
set\u include\u path
应该是您所需要的一切。但不要忘记附加现有路径:

set_include_path(implode(PATH_SEPARATOR, $your_folders).PATH_SEPARATOR.get_include_path());
这会对所有后续的include/require/_产生一次影响,但不会影响任何其他文件函数。您还应该检查WordPress是否已经这样做了,它本身可能有一个设置来设置路径


回答你的问题,不,不可能一次重写require_。但是,您可以使用
spl\u autoload\u register
并避免一次使用require\u。

除非您想以某种更复杂的方式操作相对路径,而不仅仅是尝试预先设置一些绝对路径,
set\u include\u path
应该是您所需要的一切。但不要忘记附加现有路径:

set_include_path(implode(PATH_SEPARATOR, $your_folders).PATH_SEPARATOR.get_include_path());
这会对所有后续的include/require/_产生一次影响,但不会影响任何其他文件函数。您还应该检查WordPress是否已经这样做了,它本身可能有一个设置来设置路径


回答你的问题,不,不可能一次重写require_。但是,您可以使用
spl\u autoload\u register
并避免一次使用require\u。

我应该考虑一下吗?不不用麻烦了。PHP已经在内部完成了所有的路径规范化,因此无论您如何提供任何一个文件的路径,PHP都不会(合理地)重新包含它。您确定它是Windows环境吗?如果不是,有机会文件和文件夹和区分大小写,所以这是一个需要考虑的事情。你可以写一个函数来包含一个路径,但是在你构建路径之后,你仍然应该使用<代码>包含(< /代码> /<代码>要求)>代码> @ PioTrkkr,我忘记添加,我知道这一点,但是我想避免在我现有的代码中更新所有
require
语句的风险。我应该考虑一下吗?不不用麻烦了。PHP已经在内部完成了所有的路径规范化,因此无论您如何提供任何一个文件的路径,PHP都不会(合理地)重新包含它。您确定它是Windows环境吗?如果不是,有机会文件和文件夹和区分大小写,所以这是一个需要考虑的事情。你可以写一个函数来包含一个路径,但是在你构建路径之后,你仍然应该使用<代码>包含(< /代码> /<代码>要求)>代码> @ PioTrkkr,我忘记添加,我知道这一点,但是我想避免更新现有代码中所有
require
语句的风险。