【问题标题】:php including file practicephp包括文件练习
【发布时间】:2013-08-06 01:21:40
【问题描述】:

如果之前执行的其他 php 文件已经预先包含了 php 文件所需的包含,我还应该编写它们吗?

例如,假设我有 3 个 php 文件:parent.php、child.php 和 food.php。

parent.php 和 child.php 需要位于 food.php 中的函数。 parent.php 首先包含 food.php,然后是 child.php。这意味着 child.php 也会为其加载 food.php。

所以对于 child.php,我还是应该写 require_once/include_once('food.php'),还是不写?

谢谢。

【问题讨论】:

  • 如果您确定它已经加载,则无需再次加载。如果不确定,请使用require_once()

标签: php include


【解决方案1】:

理想情况下,您会知道文件包含在哪里,基于框架甚至是简单的文件结构。

只是在这里和那里包含文件“以防万一你忘记了”是非常糟糕的编码习惯。你在哪里画线?在 header.php 中设置元标记,然后在 index.php 中设置,以防它在 header.php 中不起作用?

您可以改用 require_once(),它会在出错时停止(而 include_once 将继续执行剩余的脚本) - 例如:

PHP 致命错误:require_once(): 无法打开所需的“food.php”

虽然 PHP 应该遵守并且只包含“一次”,但它可能会导致重新包含文件的问题、错误/警告等,因此只需正确构建文件并在需要时将文件包含在文件中(通常都在需要它们的文件的顶部)

如果我的理解正确,您只需要 parent.php 首先包含 food.php,然后是 child.php,因此 parent.php 和 child.php 都可以访问 food.php 中的任何内容。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    在您的示例中,child.php 不需要包含 food.php

    【讨论】:

      【解决方案3】:

      单独包含文件是个好主意。如果由于某种原因,food.php 没有包含在 parent.php 中,那么您在 child.php 中的代码将无法工作。

      为了防止这种情况,您可以在两个文件中加载food.php,这样如果一个文件失败,另一个文件会顺利运行。

      重命名文件会更清楚。

      functions.php:

      //some code
      

      file1.php:

      require_once('functions.php');
      //some code
      

      file2.php:

      require_once('functions.php');
      //some code
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多