[英]include, include_once, require or require_once?
我有 PHP 文件,我在其中定义了服务器访问变量以及mysql_connect
和mysql_select_db
,因为这些函数在后端的几乎每个页面中都经常使用,而我使用的include()
现在对我来说非常有用,哪种方法您会建议或功能吗,我想知道如果我使用include()
是否有任何缺陷,或者使用它是否安全?
编辑:记住我也会使用$_SESSION
变量。
两者之间的唯一区别是require
和它的姊妹require_once
在找不到文件时抛出致命错误,而include
和include_once
只显示警告并继续加载页面的其余部分。 如果您不希望 PHP 在没有数据库信息(我假设)的情况下尝试加载页面的其余部分,请使用require_once
。 您不需要多次包含该文件,因此无需使用常规的require
函数。
功能性工作:所有功能都执行相似的工作。 所有函数都将在执行代码时包含并评估特定文件。
功能差异:
include vs include_once : include() 和 include_once() 之间只有一个区别。 如果文件中的代码已经被包含,那么如果我们使用 include_once() 就不会再次包含它。 意味着 include_once() 一次只包含文件一次。
include vs require :如果 include() 无法在当时的位置找到指定的文件,它将抛出警告,但不会停止脚本执行。 对于相同的场景,require() 将抛出一个致命错误并停止脚本执行。
require 与 require_once : require() 和 require_once() 之间只有一个区别。 如果文件中的代码已经被包含,那么如果我们使用 require_once() 就不会再次包含它。 意味着 require_once() 一次只包含文件一次。
要通过示例获得详细知识,请查看这些精彩的文章
(1) http://www.readmyviews.com/include-vs-include-once/
(2) http://www.readmyviews.com/include-vs-require/
对于数据库连接变量,最好使用 require_once() 函数。 如果连接因任何原因失败,您可以显示失败消息。
如果您的页面在没有数据库连接的情况下无法工作,那么 require_once 将是唯一正确的选项(因为您不想加载这些设置两次,加载一次就足够了)。 即使设置文件不可用,包含也会尝试加载您的页面。
<?php
include('db.php');
echo "<br>"."Included"."<br>";
include_once('db.php');
echo "<br>"."Again included"."<br>";
?>
在上面的代码中,我在顶部使用 include 语句包含了一个文件,该文件被包含在内。
接下来我使用 include_once 来包含同一个文件,但是由于上面已经包含了该文件,所以这里不会再包含它了。
输出:
Connected -----This is from db.php File
Included
Again included
<?php
include_once('db.php');
echo "<br>"."Again included"."<br>";
include('db.php');
echo "<br>"."Included"."<br>";
?>
我在上面代码的顶部使用了include_once
,因此包含该文件。
但是在下一个代码中,我再次对同一个文件使用了include_once
,然后该文件将再次被包含,输出将是:
输出:
Connected
Again included
Connected
Included
Include include() 语句包括并评估指定的文件。
包含一次 include_once() 语句在脚本执行期间包含并评估指定的文件。 这是一种类似于 include() 语句的行为,唯一的区别是如果来自文件的代码已经被包含,则不会再次被包含。 顾名思义,它将只包含一次。
Require require() 和 include() 在各方面都是相同的,除了它们如何处理失败。 它们都会产生警告,但 require() 会导致致命错误。 换句话说,如果您希望丢失的文件停止处理页面,请不要犹豫使用 require()。
要求一次 require_once() 语句在脚本执行期间包括并评估指定的文件。 这是一种类似于 require() 语句的行为,唯一的区别是如果来自文件的代码已经被包含,则不会再次被包含。
require() 更适合你。 因为在脚本编译之前使用 require 文件包含。 inluce() 在动态包括中使用。
如果您在一个页面上多次包含它,则应该使用 include_once()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.