【问题标题】:Managing include statement管理包含语句
【发布时间】:2013-10-27 12:15:21
【问题描述】:

我有 4 个文件:

  • index.php
  • a.php
  • b.php
  • config.php

文件ab需要包含config.php和index.php需要包含a.php & b.php

所以 index.php 看起来像:

<?php include('a.php'); include('b.php'); ?>

我的问题是,您将如何管理文件 config.php 的包含。我应该将它包含在 a.phpb.php 中还是仅在 index.php 中包含一次,或者您有其他想法。

【问题讨论】:

  • "或者你有别的想法吗?" - 你可以将你的代码构造成类并使用autoloading 而不是手动指定包含。 (您仍然需要在 index.php 的顶部添加一个 include,以加载 config.php 并设置自动加载器。)

标签: php


【解决方案1】:

如果ab不需要直接访问,则不需要在其中包含config.php。他们将选择已经包含在 index.php 中的变量。但是,如果它们是可以直接访问的单独页面和/或可以包含在 index.php 中,那么您可能希望将包含语句放在这些页面的顶部页面也是如此。

最好的办法是使用include_once()require_once()

【讨论】:

  • 顺便提一下,include_once 等不是函数,所以不需要括号。我实际上遇到了由该错误引起的错误(include_once($foo) &amp;&amp; $bar 实际上意味着 include_once ($foo &amp;&amp; $bar),因为括号实际上并没有包含任何内容)。
【解决方案2】:

你的所有文件(除了 index.php)都需要配置吗?如果是这样,我建议始终在 index.php 中包含 config.php

// index.php
require_once ('config.php');

您当然也可以在 a.phpb.php 中使用 include config.php,但我不推荐这种做法因为这会导致大量不必要的包含(错误代码)。

【讨论】:

  • 我试图在 index.php 中包含 config.php 但看起来 A 和 B 中的代码无法访问 config.php 函数..“致命错误:调用未定义函数检查( )"
  • @ImriPersiado 包含的顺序很重要。
  • @ImriPersiado 它应该确实有效。请在问题中发布文件内容。 (我假设您在 config.php 被包含之后包含 A 和 B。)
猜你喜欢
  • 1970-01-01
  • 2014-06-14
  • 2011-02-13
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 2013-12-27
  • 2013-11-13
相关资源
最近更新 更多