【问题标题】:Including a file that includes another file包含一个包含另一个文件的文件
【发布时间】:2012-06-09 11:44:28
【问题描述】:

文件夹结构

  • 根
    • 公司/
      • db.php
      • session.php
      • db.php
      • init.php
    • lib/
      • 树枝/
  • init.php

login.php 文件

<?php
include 'inc/init.php';

init.php

<?php
include 'session.php';

$config = include 'config.php';
include 'db.php';

require_once '/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

我很困惑的是 Twig 库被包含在内的事实。我不需要备份一个文件夹 ../ 吗?但这给了我一个错误,我根本不明白为什么。

【问题讨论】:

  • 如果你读了最后几句话,你显然明白没有错误,但误解了它为什么会这样工作。
  • 由于init.php 文件已经在root 目录中(我猜这是你的主目录),你不需要返回任何地方。您处于目录结构的最顶层。如果您在空白页面的浏览器中,您将如何从那里返回?同样的事情。

标签: php


【解决方案1】:

您正在使用 Twig 的绝对路径,这就是包含它的原因。如果你想使用相对路径从你的init.php 文件中包含它,那么它应该是这样的:

require_once './lib/Twig/Autoloader.php';

【讨论】:

    【解决方案2】:

    PHP include 语句的作用是获取包含的文件并转储包含文件中的所有内容。因此,如果您在根文件夹的 init.php 中包含一个文件,则所有包含都相对于根目录。

    掌握这一点。在包含文件中添加一些语句,例如 printf("I am in init.db, the current folder is %s", getcwd());,这将帮助您了解包含文件时当前目录是什么,并且您可以相应地修改您的包含。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      相关资源
      最近更新 更多