| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Область видимости переменных |
| Автор: MoLeX 14.12.2010, 09:13 | ||||||||
| Добрый день. Есть функция вызова модуля. Количество переменных которые будут задействованы в модуле растет index.php
test.php
Хочу избавиться от global при вызове модуля таким способом
test.php
Может есть еще способ? |
| Автор: gta4kv 14.12.2010, 09:27 |
| http://ru2.php.net/manual/en/function.func-get-args.php ? |
| Автор: MoLeX 14.12.2010, 09:32 |
| gta4kv, знаю про эту функцию. Но передавать каждый раз огромный количество нужных мне переменных, как то не очень |
| Автор: gta4kv 14.12.2010, 09:37 |
| собери в массив... или поменяй подход |
| Автор: ksnk 14.12.2010, 09:45 |
| GLOBALS - слишком большой и трудноконтроллируемый массив. Более логично организовать какую-нибудь класс-обертку. Она будет собирать переменные. екстрагировать их перед вызовом модуля. Обычная для шаблонизаторов практика: setVariable, которая собирает в классе ассоциативный массив с нужными значениями и callModule, в которй первой строчкой идет extract всего массива переменных. |
| Автор: skyboy 14.12.2010, 09:55 |
| т.е. любой модуль может по своему желанию переписывать(читай - "портить") общие(читай - "конфигурационные") данные? массив глобальных переменных - самый худой механизм. уже лучше класс-синглтон, реализующий http://ua.php.net/manual/en/class.arrayaccess.php для удобства работы. и тогда на выбор: либо логирование повторной записи в существующие поля, либо вообще запрет на повторную запись имеющихся переменных. |
| Автор: MoLeX 14.12.2010, 09:56 |
| уже переделали) Изменили малость логику подключения модулей и все) |