| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > массив глобальных переменных |
| Автор: Echo 15.1.2007, 17:47 |
| Напишите, как вы организуете хранение данных, доступность которых требуется из всего скрипта. Т.е. как лучше всего хранить данные, к которым должна быть возможность обратиться из любых точек скрипта - в том числе из подключенных файлов и классы. массив $GLOBALS не хотелось бы использовать т.к. в нем изначально много данных и , например , при отладке трудно отделить свои переменные от созданных PHP. Что касается создания своего глобального массива - то каждый раз объявлять его внутри всех функций как глобальный - требует по-крайней мере внимательности еще и на это. Можно ли использовать для таких целей $_ENV? Или как лучше?.. |
| Автор: skyboy 15.1.2007, 17:50 |
| я "глобальные" данные передаю параметром там, где вызов функций. там, где происходит include, доступность и так есть. |
| Автор: mishaSL 15.1.2007, 17:58 |
| Если у тебя все на классах, то можешь в конструктаре каждого класса объявлять, если же нет, то придется в каждой функции либо объявлять global, либо передавать параметром. А константы объявляешь(define), и они доступны во всем скрипте. |
| Автор: Mal Hack 15.1.2007, 18:17 |
| Использование глобальных переменных считается плохим тоном и ошибкой проектирования. |
| Автор: BobiKK 15.1.2007, 18:42 |
| Вариант решения: http://www.phppatterns.com/docs/design/the_registry |
| Автор: Echo 15.1.2007, 18:56 | ||
допустим в прологе обрабатываем полученные от пользователя данные и создаем на основе них переменные (с новыми именами), описывающие фильтр и источники данных, либо пустые, если от юзера пришла какая-нибудь ерунда. ну и хотелось бы что бы при вызове других классов всегда можно было обратиться к источнику данных изнутри. есть негатив в таком подходе? |
| Автор: skyboy 15.1.2007, 19:06 | ||
про сессии слыхал чего? |
| Автор: Echo 15.1.2007, 19:12 |
| skyboy, и зачем? речь о пределах одного запроса пользователя |
| Автор: Mal Hack 15.1.2007, 19:14 |
| Echo, я не хочу вдаваться в дискуссию касательно того, что лучше, что хуже. Использование ГП ведет к ввозможным ошибкам и т.п. Само собой при решении задач иногда бывает нужно это сделать и ничего плохого в этом не будет, но вот злоупотреблять этим - себе дороже. |
| Автор: Mal Hack 15.1.2007, 19:33 |
| sergejzr, а в таком случае можно их как ссылкой в свойство класса занести из того, откуда вызываются |
| Автор: sergejzr 15.1.2007, 19:37 | ||
Кстати и константы можно так определить
|
| Автор: Diesel Draft 18.1.2007, 04:42 |
| Я использую Фреймворк. Там глобальные данные предназначены только для настоек самого Фреймворка. Я согласен с Mal Hack что это плохой тон в программировании |
| Автор: Echo 21.1.2007, 12:47 |
| sergejzr, да, спасибо. теперь изучаю идея очень понравилась |