2010-03-23 77 views
0

我应该在以下声明中使用什么?包括或必需。包括或需要

if(a ==b){ 
require 'requiredfile.php'; 
} else { 
require 'requiredfile_2.php' 
} 

如果在一个功能,我知道那一个,包含或要求,只包括文件调用的时候,另外一个将包括文件,而不管。我对么?

回答

8

includerequire之间的区别在于include文件没有找到时只会发出警告,并且require会以致命错误终止。

如果您正在加载重要的程序部件,您可能需要使用require

Manual

要求()是相同的包括()除在失败时它也将产生致命的E_ERROR电平误差。换句话说,它会停止脚本,而include()只发出一个警告(E_WARNING),允许脚本继续。

+1

只是想补充一点,如果你只想要一次包含文件,就像它包含函数或类定义一样,你可能会想要使用'include_once'或'require_once'。这确保即使文件被告知包含10次,它也只包含一次,摆脱“已经声明的函数”错误。 – Tarka 2010-03-23 17:05:24

+0

-1票。如果include/require失败,那么您应该在代码中优雅地处理事件。 还有条件地包括代码/内容是凌乱的。尽一切办法使用自动加载器 - 但包含的文件不应包含内联代码/内容 - 它应该只在包含它的代码特别要求执行时才会生成输出/重要状态更改。 – symcbean 2010-03-23 17:35:32

+0

是的,但我的理解是,如果包含或需要,不记得哪一个,如果是函数内部,它将在页面被调用时加载数据,而另一个将等待加载数据直到函数叫做。这就是我想要得到的,这两个中的哪一个是调用该函数后加载数据的那个? – 2010-03-23 17:37:50