所以,我有一个(大概)容易解决的问题,目前胜过我。
我的布局从主注册文件开始,在主目录中:
和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文件中包含那些文件BEFORE 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文件中。
答案 0 :(得分:0)
试试这个:
require("config/db.php");
require("classes/website_language.php");
require("views/registration.php");
答案 1 :(得分:0)
我认为你的问题是你没有考虑到&#34;包含/要求&#34;是相对于执行包含的文件。
让我们举个例子
文件夹结构
root/index.php
root/folder1/file1.php
root/folder1/file2.php
问题
index.php
include "folder1/file1.php";
file1.php
include "file2.php";
&#34;包括&#34; file2.php&#34;;&#34;将由index.php执行,因此index.php将在同一文件夹(本例中为root)中搜索名为file2.php的文件。当然index.php不会找到这样的文件。
<强>解强>
index.php
include "folder1/file1.php";
file1.php
include dirname(__FILE__) . "/file2.php";
因此解决方案是使用绝对路径 - 您可以使用dirname( FILE )混合亲戚和绝对路径,以获取包含该文件的目录。