我看到php CMS使用include而不是require为他们的重要文件。不应该要求header.php这样的文件吗? 如果无法打开文件,脚本会继续运行!
答案 0 :(得分:3)
取决于。可能是懒惰或未受过教育的开发者的标志。但如果标题是一个重要的文件 - 即。包含授权逻辑(它不应该) - 然后是,您可能希望使用require
代替include
。
答案 1 :(得分:2)
include允许发生警告,因此脚本的其余部分仍将执行。 require会导致致命错误,从而立即停止执行。这通常会导致输出错误描述的完全空白页面。在我看来,require_once是最方便的,特别是如果脚本中的脚本中有脚本,因为如果多次定义函数会输出致命错误。我个人更喜欢,require_once()因为它阻止php代码溢出到HTML中供用户查看
Condition: file test.php does not exist
<?php include("test.php"); print "<p>Hey This String Still Prints Dude!</p>"; ?>
结果:
Warning: include(test.php) [function.include]: failed to open stream: No such file or directory in /home/webspotm/public_html/error/index.php on line 2 Warning: include() [function.include]: Failed opening 'test.php' for inclusion (include_path='.:/home/webspotm/.imports') in /home/webspotm/public_html/error/index.php on line 2 Hey This String Still Prints Dude!
<?php require("test.php"); print "<p>Yea don't even try, this code ain't gonna show!</p>"; ?>
结果:
Warning: require(test.php) [function.require]: failed to open stream: No such file or directory in /home/webspotm/public_html/error/index.php on line 2 Fatal error: require() [function.require]: Failed opening required 'test.php' (include_path='.:/home/webspotm/.imports') in /home/webspotm/public_html/error/index.php on line 2
答案 2 :(得分:1)
作者不知道include和require之间的区别,或者他不介意文件是否包含在内。
答案 3 :(得分:0)
如果找不到文件,include()结构将发出警告;这是require()的不同行为,会发出致命的错误。