Intereting Posts
Как запустить композитор из любого места? PHP: сервер MySQL ушел Длительный фоновый скрипт PHP блокирует другие страницы PHP до тех пор, пока он не будет завершен Как переименовать ключи массива в PHP? PHP Получить URL с параметром Опубликовать многомерный массив с использованием CURL и получить результат на сервере Обновление нескольких индикаторов выполнения при отправке нескольких файлов и элементов формы через ajax Ссылка на новую страницу php page wordpress Категории и подкатегории Изменение ассоциативного массива в индексированный массив / получение Zend_Table_Row_Abstract как неассоциативного Алгоритм интеллектуальной разбивки на страницы Как добавить ссылку в тему электронной почты (gmail) Как получить данные из базы данных с помощью AJAX в CodeIgniter? PHP заменяет пробелы подчеркиваниями php добавление изображений в другое изображение, точное позиционирование

Проблема с переменной областью в PHP

Вот моя ситуация:

Я работаю над проектом PHP, который использует несколько функций, которые я написал для работы с внешним XML-документом. То, что я хочу сделать, это импортировать тот же файл functions.php на разные страницы, которые используют один и тот же код. Проблема в том, что путь к XML-файлу не всегда одинаковый и часто зависит от отображаемого в настоящее время представления.

То, что я пытаюсь сделать, в основном объявляет $source = 'path-relative-to-view'; на мой взгляд, перед тем, как include 'path-to-functions.php'; а затем, когда это необходимо, имеют доступ к переменной источника $ source. Таким образом, мне не придется переписывать функции для каждого другого каталога, в котором я есть.

Я предполагаю, что это возможно, но, к сожалению, я не использовал PHP достаточно, чтобы точно знать.

Solutions Collecting From Web of "Проблема с переменной областью в PHP"

Вам нужно объявить $source global в каждой функции, которая будет использовать его.

 function abc { global $source; //--use $source } 

Вы можете использовать глобальную переменную, но не глобальные переменные не очень хороши.

Просто перепишите функции, чтобы перейти к файлу в качестве одного из их параметров.

Другая вещь, которую вы можете сделать, это группировать их внутри класса. Затем используйте переменную-член класса для хранения пути, к которому все они смогут получить доступ.