如何包含已包含其他文件的php文件?

时间:2015-04-30 16:48:32

标签: php php-include

我试图将2个php文件包含在同一个表中的两个单独的<td>标记中。

<td><?php include 'login.php';?> </td>
<td><?php include 'register.php';?> </td>

两个php文件都包含另一个用于连接数据库的php文件(例如<?php include 'database.php';?>

现在,问题是,第二个文件没有出现在表格中。第一个文件有效。

Php文件独立工作。代码没问题。

我删除了1.php中的include,一切正常 - 即。这两个文件都显示在表格中。

我的结论是,它会无限期地继续下去。现在,我该如何解决这个问题?

问候 Ganesh Kumar

2 个答案:

答案 0 :(得分:1)

您可以使用include-once

  

include_once语句包含并评估指定的文件   在执行脚本期间。这是一种类似的行为   include语句,唯一不同的是如果代码   已包含文件,将不再包含。   顾名思义,它只包含一次。

即:

 include_once('database.php');
 include_once('login.php');
 include_once('register.php');

答案 1 :(得分:0)

你实际上有几种选择,现在我考虑一下。

Require_once:

require_once('database.php')

这是您所描述的文件的最常用方法,因为如果无法包含该文件,它将很难失败。对于进行程序实例化(即数据库连接)的文件,首选此方法。

Include_once:

include_once('login.php')

我从来没有找到在require_once上使用此声明的理由;然而,那说,并不意味着没有一个。如果你有一个文件可以对你的程序中某些与任务无关的实例进行实例化,那么你可以假设将该指令用于另一个。

定义包含常量:

此方法需要更多解释:不要使用其代码启动包含的文件(在我们的示例中为database.php),而是以类似于C / C99 / C ++的方式启动它。

<?php
    if (!defined("INCLUDED_DATABASE"))
    {
        define("INCLUDED_DATABASE", true);

        // add main body of file here
    }
?>

此方法基本上与include_oncerequire_once完成相同的操作,但在任何情况下都不会在一次请求中实际处理主体两次,即使您忘了使用_once作为include / require方法的足够用量。这可以追溯到C / C99 / C ++的旧时代 包含两次文件会使编译器难以理解,因为会发生重复定义。

就个人而言,我一直更喜欢最后一个选择:它是最严格的。是的,require_onceinclude_once在努力使用时会产生相同的效果,但假设某人(甚至不是)正在修改应用程序并意外地执行了{{1} }或include没有require后缀,他们将度过糟糕的一天。这种方法可以防止这种情况。

尽管如此,我仍然会在必要时使用_once,如果可以多次使用require_once。 (具有该指定的文件不是使用require构造设计的。)