2013-11-02 125 views
5

requireinclude具有变体require_onceinclude_once。它们阻止脚本多次加载文件。为什么要包含/需要多次?

我想我可以放心地假设,因为功能的存在,会有情况下,你将需要require/include函数代替require_once/include_once之一。但我无法想象这样的情况。那会是什么?

+0

我用'require' [在模板引擎(https://github.com/halfer/TemplateSystem/blob/master/ControllerBase.php#L52)包括一个HTML片段按需要多次。碰巧,我在回购上的最后一个错误是我错误地使用'require_once',因此被多次使用的碎片被忽略! – halfer

回答

7

可能是给出输出的最好例子。例如,如果您有一段HTML可能会在不同页面上出现一次以上,则可以将其放入一个单独的文件并将其包含多次。

而且,通常没有必要使用require_onceinclude_once。如果文件只被调用一次(例如在__autoload),那么简单函数的开销就会小一些,因为PHP不需要跟踪文件是否已经被包含在内。

+0

所以,如果我理解正确的'require_once'和'include_once'是否有马虎脚本来清理它们的混乱? – Joren

+1

@Joren在某种程度上,他们属于PHP的过去时代,是的,我会这么说。 – lonesomeday

+0

可爱的,PHP的心理-1和你的+1。 – Joren

1

如果你想只定义一次变量或常量,你可能想要使用require_once而不是require。这对于在一个可以快速管理依赖关系的非常庞大的代码库中创建可重用的类很有帮助。假设我有一个需要文件B的文件A,但是我已经包含了包含文件B的文件C.由于文件B已经包含在内,程序不必再次评估该代码以正确评估文件A.这是一种情况您可能只想将文件包含一次。

它有助于管理您的依赖

相关问题