繁体   English   中英

包括、include_once、require 或 require_once?

[英]include, include_once, require or require_once?

我有 PHP 文件,我在其中定义了服务器访问变量以及mysql_connectmysql_select_db ,因为这些函数在后端的几乎每个页面中都经常使用,而我使用的include()现在对我来说非常有用,哪种方法您会建议或功能吗,我想知道如果我使用include()是否有任何缺陷,或者使用它是否安全?

编辑:记住我也会使用$_SESSION变量。

两者之间的唯一区别是require和它的姊妹require_once在找不到文件时抛出致命错误,而includeinclude_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM