php include_once不仅适用于一个文件

时间:2013-11-07 14:37:52

标签: php include

我在同一目录中有两个文件夹ProviderLibraryProvider包含两个php文件ActiveRequests.phpPendingRequests.phpLibrary包含另一个文件夹Multilingual,其中包含Pagefactory.phplanguageSession.php

- Provider
  - ActiveRequests.php
  - PendingRequests.php
- Library
  - Multilingual
    - Pagefactory.php
    - languageSession.php

我在PageFactory.php中加入了ActiveRequests.php

      include_once __DIR__ . '/../library/Multilingual/PageFactory.php'

它工作正常。

但是,当我尝试以PageFactory.php方式将PendingRequests.php包含在内时,就像

一样
       include_once __DIR__ . '/../library/Multilingual/PageFactory.php'

它不起作用。

当我尝试将languageSession.php包含在Pendingrequests.php中时

       include_once __DIR__ . '/../library/Multilingual/languageSession.php'

工作正常。

任何人都可以帮助我吗? PageFactory.php路径可能出现什么问题?

我也试过了$_SERVER["DOCUMENT_ROOT"],但它没有用。

3 个答案:

答案 0 :(得分:1)

我刚刚解决了同样的问题,关键是如果您在PageFactory.php中加入PendingRequests.php,则必须更改基于PageFactory.php路径的PendingRequests.php引用的每个文件。我用这种方式解决了我的问题。

答案 1 :(得分:0)

尝试将路径打印为

echo __DIR__ . '/../library/Multilingual/PageFactory.php';

通过这种方式,您可以检查文件的路径是否正确!

或者使用var_dump检查路径!

To the people downvoting my answer:打印路径是为了调试!

或者您可以将路径检查为:

var_dump(file_exists(__DIR__ . '/../library/Multilingual/PageFactory.php'));

__DIR__是父目录的路径。从Provider使用时,它会提供PendingRequests.php的路径。

我认为问题是您使用了../。请尝试删除它!

例如, __DIR__ . '/../library/Multilingual/PageFactory.php'

相同

path/to/Provider/../library/Multilingual/PageFactory.php

所以最后的答案是删除“../”,它变为:

__DIR__ . '/library/Multilingual/PageFactory.php'

答案 2 :(得分:0)

显而易见的问题是您包含以下文件:

include_once __DIR__ . '/../library/Multilingual/PageFactory.php'

文件名为Pagefactory.php

在非Windows系统上,这会有所不同。确保大写是正确的。

这可能只是你问题中的拼写错误(它最初表明它可能是拼写错误的数量!)但它可能是问题的原因。