【问题标题】:PHP file not recognizing includesPHP 文件无法识别包含
【发布时间】:2015-02-11 22:16:31
【问题描述】:

所以,我有一个(大概)容易解决的问题,目前正在战胜我。

我的布局从主注册文件开始,在主目录中:

registration.php

<?php

// Include connection to database
require "config/db.php";

// Include website language class
require "classes/website_language.php";

// Include registration class
require "classes/registration.php";

// Include the page
include "views/registration.php";

我的问题是 classes/registration.php 不包括 config/db.php 或 classes/website_language.php,即使我在 MAIN 文件中包含 classes/registration.php 之前的那些文件。

由于 config/db.php 和 classes/website_language.php 在 classes/registration.php 之前包含在主注册文件中,classes/registration.php 不应该能够从这两个包含的文件中提取数据吗?

我通过在 classes/registration.php 文件本身中包含 config/db.php 和 classes/website_language.php 来解决此问题,但如果可能的话,我更希望将这些包含在 MAIN 文件中。

【问题讨论】:

  • 检查,registration.php有什么bug。
  • 请记住标记正确答案(并提供您的反馈)以帮助其他已经(或将要)遇到相同问题的人

标签: php include directory require


【解决方案1】:

试试这个:

require("config/db.php");
require("classes/website_language.php");
require("views/registration.php");

【讨论】:

    【解决方案2】:

    我认为您的问题是您没有考虑到“包含/要求”与执行包含的文件相关。

    举个例子

    文件夹结构

    root/index.php
    root/folder1/file1.php
    root/folder1/file2.php
    

    问题

    index.php
    
    include "folder1/file1.php";
    
    file1.php
    
    include "file2.php";
    

    “包含“file2.php”;”将由 index.php 执行,因此 index.php 将在同一文件夹(在本例中为 root)中搜索名为 file2.php 的文件。 index.php 当然不会找到这样的文件。

    解决方案

    index.php
    
    include "folder1/file1.php";
    
    file1.php
    
    include dirname(__FILE__) . "/file2.php";
    

    因此解决方案是使用绝对路径——您可以使用 dirname(FILE) 混合相对路径和绝对路径,以获取包含文件的目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      • 2018-03-16
      • 2020-10-11
      • 1970-01-01
      • 2014-04-04
      • 2019-12-18
      • 1970-01-01
      相关资源
      最近更新 更多