поэтому у меня есть структура сайта, как это. У меня есть index.php
, который включает() include.php
, который включает в себя functions.php
и множество других файлов. Что я хочу сделать, это написать $GLOBALS["something"] = 'something here';
в functions.php
и после сделать echo $something;
в index.php
, поэтому он напечатает something here
, но почему-то ничего не возвращает. Где моя ошибка?Проблема глобальной переменной PHP по нескольким файлам
ответ
В index.php
вы либо должны сказать echo $GLOBALS['something']
или global $something; echo $something;
для регистрации $something
в качестве глобальной переменной.
Однако я бы вообще отказался от использования глобальных переменных и вместо этого использовал константы, если вам нужно.
это то, что я пытался, но echo $ GLOBALS ['something'] все еще ничего не выводит. Я ценю ваш совет о константах, но теперь я буду придерживаться глобальных. – Treat
@Treat: Вы уверены, что файлы включены, и глобальные регистры, зарегистрированные до того, как используется их код? – NikiC
@NikiC, когда вы спросили об этом так, я понял, что глобальные переменные определены в функции и перемещают их вне функции, и теперь они дают вывод в index.php. Есть ли способ определить их в функции и получить результат в index.php? – Treat
Попробуйте распечатать $ GLOBALS с помощью vardump и опубликовать вывод. – evotopid
Поместите некоторый фактический код, и мы сможем помочь вам более легко. –
Напишите чистый код вместо использования глобальных переменных. – KingCrunch