![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
kilogram |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 19.3.2012 Репутация: -1 Всего: 0 |
Читаю в книге про глобальные переменные.
Правильно ли так объявлять глобальные переменные? Удобно и хорошо ли это? Вижу тут удобный доступ сразу из локальной функции прямо в глобалный массив.
|
|||
|
||||
Valinur |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 21.9.2007 Где: Москва Репутация: 4 Всего: 6 |
Обычно глобальные переменные говорят о непродуманной архитектуре и структуре приложения.
Это конечно же ИМХО. В вашем примере этот массив можно спокойно передать в функцию. При ООП массив может выступать в роли поля объекта, который можно будет использовать в методе как $this->monthes --------------------
Не бойтесь совершенства, Вы все равно его не достигнете (с) ... |
|||
|
||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
kilogram, можно спать спокойно, код верный, только это немного не глобальная переменная )) вернее под фразой "глобальная переменная" можно понимать 2 понятия, настоящая глобальная переменная будет работать при включении опции PHP register_globals = on и тогда переменные могут быть доступны внутри любых функций без всяких global $par и вот это как раз есть большое зло в шестой версии PHP вроде даже убирают вообще register_globals
а вот использование global $par как раз позволяет передать доступ к переменной в нужную функцию чтобы переменная была объявлена где-то вверху и доступна для чтения\изменений внутри тех функций где это указано через global $par вот как-то так |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Глобальные переменные - это зло(!) Избавляйся от них, ищи другие решения
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
вот здесь в комментах идет обсуждение зло global или нет
|
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
ну ничего нового в этой статье нет
![]() Использование глобальных - это не ошибка. Вот что нужно помнить. Но использование глобальных - это как минимум, как ранее было сказано, говорит о непродуманной архитектуре и структуре приложения. Даже не будем касаться безопасности.. Представим проект в котором задействовано большое количество людей и каждый пишет расширения для проекта. Самое элементарное, как отследить что находится в тот или иной момент в Глобальной??? Все функции и методы должны чётко знать что и получают и что возвращают. Иначе в один прекрасный момент получится так что кто-то поменял данные в глобальной, а другие об этом не узнали и повыскакивали ошибки.. А в данной ситуации, я бы создал класс для подобных глобальных переменных, да и получал бы их через статичные методы.. -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |