Мой PHP настроен так, что каждая страница работает следующим образом:
require('config.php'); //variables, db, etc
$content = "all page output";
require('design.php');
Однако — каждый раз, когда страница вызывается с require()
от design.php
он не может читать любые переменные. $vars
, get
, post
, глобальные переменные, константы и т. д. Все, что я могу заставить его работать, это переменные сеанса.
Следует отметить, что переменные загружаются нормально, если я вырезал / вставил код из require()
файлы прямо в design.php
,
Из моего понимания include()
/require()
действовал так, как будто код был просто вырезан и вставлен в нужное место. Тем не менее, это дает мне мир проблем.
* Разбивка кода *
config.php
$systemProductURL = 'http://test.com/cart/';
$ systemProductURL — это переменная, которая не передается по всему пути. Я могу повторить это нормально из config.php.
design.php
include $systemProductURL . 'inc/components/defaultMainMenu/display.php';
Эта страница полностью оформлена, она не выполняет никаких вычислений и не изменяет переменные. Он использует $ systemProductURL для вызова display.php. $ systemProductURL отлично работает здесь, в design.php но не читается в display.php. Я знаю, что include () достигает нужного файла, так как я могу просто выводить обычный текст из display.php.
display.php
<? echo $systemProductURL; ?>
Вот где проблема. Я не могу заставить display.php отображать $ systemProductURL. Это вся страница.
Страница, которую посещает пользователь. Я буду использовать мою домашнюю страницу, index.php в качестве примера
require 'inc/config.php';
$pageContent .= "<div class='pageContentBody' style='width: 100%'>
content
</div>";
require 'inc/design.php';
Эта страница и любая другая страница, которую посетил пользователь, может отлично использовать $ systemProductURL.
Задача ещё не решена.
Других решений пока нет …