如何使PHP包含/需要组合?

时间:2014-04-03 13:54:19

标签: php include require

我被the issue in this question击中:PHP的includerequirerequire_once等的路径分辨率不是我预期的。

这个问题的根本原因显然是所有PHP文件中的路径都是相对于最初执行的脚本的位置来解析的。但是,我和许多其他人一样,希望解决方案相对于include / require所包含的文件位置。

我链接的问题的答案解释了这种行为,但没有解决如何解决它。在我看来,PHP的解析方法本质上是非组合的:每个文件都必须假设它是从特定位置包含的,这打破了模块自包含的组合原则。

那么,我该如何解决这个问题呢?是否存在require_once的“固定”版本,它使用了我和其他人期望的解析语义?

1 个答案:

答案 0 :(得分:3)

使用__DIR__

例如:

require __DIR__ .'/file_in_same_directory.php';

http://www.php.net/manual/en/language.constants.predefined.php