我看到 php CMS 使用 include 而不是 require 他们的重要文件。不应该需要诸如 header.php 之类的文件吗?如果文件无法打开,脚本将继续!
user388690
问问题
365 次
4 回答
3
要看。可能是懒惰或未受过教育的开发人员的标志。但是,如果标头是一个重要文件——即包含授权逻辑(它不应该)——那么是的,你会想要使用require
.include
于 2010-08-06T08:54:17.347 回答
2
include 允许发生警告,因此脚本的其余部分仍将执行。require 导致发生致命错误,立即停止执行。这通常会导致输出错误描述的完全空白页面。在我看来,require_once 是最方便的,尤其是如果你有一个脚本中一个脚本中的一个脚本,因为如果你多次定义函数会输出一个致命错误。我个人更喜欢 require_once() 因为它可以防止 php 代码溢出到 HTML 中供用户查看
这里有一些例子
条件:文件test.php不存在
使用 include() :
<?php 包括(“test.php”); print "<p>Hey This String Still Prints Dude!</p>"; ?>
结果:
警告:include(test.php) [function.include]: 未能打开 流:中没有这样的文件或目录 /home/webspotm/public_html/error/index.php 在第 2 行 警告:include() [function.include]:打开“test.php”失败 包含(include_path='.:/home/webspotm/.imports') 在第 2 行的 /home/webspotm/public_html/error/index.php 嘿,这个字符串仍然打印老兄!
使用 require() :
<?php 要求(“test.php”); print "<p>是的,不要尝试,这段代码不会显示!</p>"; ?>
结果:
警告:需要(test.php)[function.require]: 无法打开流:中没有这样的文件或目录 /home/webspotm/public_html/error/index.php 在第 2 行 致命错误:require() [function.require]:打开失败 需要 'test.php' (include_path='.:/home/webspotm/.imports') 在 /home/webspotm/public_html/error/index.php 在第 2 行
于 2010-08-06T17:56:44.063 回答
1
要么作者不知道 include 和 require 之间的区别,要么他不介意文件是否被包含在内。
于 2010-08-06T08:16:46.787 回答
0
如果找不到文件, include() 构造将发出警告;这与 require() 的行为不同,后者会发出致命错误。
于 2010-08-06T08:26:41.503 回答