代码之家  ›  专栏  ›  技术社区  ›  Incognito

包含文件的更好方法[php]

  •  1
  • Incognito  · 技术社区  · 14 年前

    假设我有四个这样的PHP文件:

    www/global.php网站

    <?php 
    function doAwesomeStuff() {}
    

    www/child1.php

    <?php
    include ("global.php");
    function Something1() {}
    

    www/child2.php

    <?php
    include ("global.php");
    function Something2() {}
    

    www/subdirectory/孙辈.php

    <?php
    include ("../global.php");
    include ("../child2.php");
    function Something3() {}
    

    我在一个案例中遇到了两次包含全局的问题,但是如果我们继续变得复杂,那么include调用的是相对于被调用文件的目录路径,而不是包含文件的目录路径,这在逻辑上是一个真正的难题。

    7 回复  |  直到 14 年前
        1
  •  3
  •   thejh    14 年前

    grandchild.php ,请执行以下操作:

    set_include_path("..");
    require_once("global.php");
    require_once("child2.php");
    

    include 具有 require_once

        2
  •  5
  •   Dereleased    14 年前

    就我个人而言,我会说更好地跟踪依赖关系或有一个中心包含文件,但是如果失败了,总是 include_once()

    注: require_once() include() require()

        3
  •  1
  •   lbedogni    14 年前

    看看 require_once ,这样就包含了一个文件 只有

        4
  •  0
  •   Tim    14 年前

    你可以用 require_once() . 当然,最好对文件进行可靠的依赖。但require_once将检查“文件是否已包含,如果已包含,则不再包含(require)它”。

        5
  •  0
  •   DrPerdix    14 年前

    我想你在找 require_once

        6
  •  0
  •   Toby    14 年前

    如前所述,require_once'includes.php'将做的工作包括太多。

    我已经使用getcwd()来返回路径,以帮助您需要包含的内容,但不幸的是,我没有具体的内容来向您展示。

        7
  •  0
  •   Parris Varney    14 年前

    除了require_once部分之外,您还可以使用php的 __autoload 中央配置文件中的magic方法。