2014-01-26 125 views
0

我确定我只是有点愚蠢,但include_path文档似乎有点混乱;什么是PHP的include_path设置

Using a . in the include path allows for relative includes as it means the 
current directory. However, it is more efficient to explicitly use include 
'./file' than having PHP always check the current directory for every include. 

实际上想说?

回答

2

是什么

使用。在包含路径中允许相对包含,因为这意味着当前目录为 。但是,明确使用包含 './file'比PHP始终检查每个包含的当前目录更有效。

其实想说?

假设你想使用include_path文件夹/somepath/foo/includes搜索包含文件时没有指定明确的路径。您可能会将大部分包含文件放置在那里,因此这应该不是太低效。

现在你包括baz.phpxzy.php123.php从该目录 - 如果你已经在include_path给出.第一,那么PHP将搜索当前目录总是首先,尽管在大多数情况下,该文件将设在/somepath/foo/includes夹。

在include路径的开始。如果你指定.和使用./abc.php明确,当你包括当前目录中的文件(特殊情况下,你的“正常”不仅包括一个),然后你的包含文件的所有其他您刚才包括使用baz.phpxzy.php123.php,PHP将必须先搜索当前目录中 - 这是没用的,因为这些文件在你的特殊文件夹包括;所以PHP可以放在首位。

+0

我几乎发布了这个单词 - 尽管我要指出它仍然是一个微型 - 优化和我希望自动处理的东西,如果你要利用某种操作码缓存,但我无法找到该部分的任何信息。我不相信你知道吗? – Emissary

+0

谢谢 - 我认为这是一个比官方文档更好的解释。我想我会潜意识地将我所有的“包含”文件放在同一个文件夹中,或者直接包含“特殊”文件 - 所以很高兴知道这是推荐的! – ChrisW

+1

@使者:我不知道。我同意,这是相当微观的优化。尽管我认为应该避免指定大量包含路径,因为通过查看多个目录直到包含文件“最终”被发现对我来说听起来不太好;并且我认为每次指定完整路径(您应该知道包含文件的位置,对吗?)是更好的方法 - 使用服务器根目录中的绝对路径(可能使用可配置的常量基路径指定),或者将_one_'include_path'目录指定为从哪里查找的基础。 – CBroe

0

它是在include_path开始处讨论点。

形式PHP文件:If filename begins with ./ or ../, it is looked only in the current working directory.

./ is the current directory. It is largely the same as just someFile.php.In many cases \it doesn't check any standard places PHP might look for a file, instead checking only the current directory.

Edited. '更有效' 意味着更好的设置路径与点这样的方式。换句话说,它将尝试不仅在当前工作目录中找到。所以,如果你想将文件包含在某个目录中,但是该文件不存在,它会尝试在其他路径中查找,这可能会造成问题,并且可能需要一些时间并使错误包含或仅包含错误。

+0

我知道'./'是当前目录 - 我只是不明白文档试图说的更有效 – ChrisW

相关问题