Итак, у меня есть (по-видимому) простая проблема, чтобы исправить то, что в настоящее время торжествует над мной.
Мой макет начинается с основного файла регистрации в основном каталоге:
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, хотя я включаю эти файлы ДО классов /registration.php в файл MAIN.
Так как config/db.php и classes/website_language.php включены в основной файл регистрации перед classes/registration.php, не должны ли классы /registration.php извлекать данные из этих двух включенных файлов?
Я исправил это, включив config/db.php и classes/website_language.php в самом файле classes/registration.php, но я предпочел бы, если это возможно, включить эти файлы в файл MAIN.
Я думаю, что ваша проблема в том, что вы не считаете, что "включает/требует" относится к файлу, делающему включение.
Давайте сделаем пример
СТРУКТУРА ПАКЕТОВ
root/index.php
root/folder1/file1.php
root/folder1/file2.php
ПРОБЛЕМА
index.php
include "folder1/file1.php";
file1.php
include "file2.php";
"Include" file2.php ";" будет выполняться index.php, поэтому index.php будет искать файл с именем file2.php в той же папке (в этом случае root). Конечно, index.php не найдет такой файл.
РЕШЕНИЕ
index.php
include "folder1/file1.php";
file1.php
include dirname(__FILE__) . "/file2.php";
Таким образом, решение должно работать с абсолютными путями - и вы можете смешать родственников и абсолютные пути с помощью dirname (FILE), чтобы получить каталог, содержащий файл.
попробуй это:
require("config/db.php");
require("classes/website_language.php");
require("views/registration.php");