Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2012, 01:29   #1
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию Глобальные переменные

Читаю в книге про глобальные переменные.
Правильно ли так объявлять глобальные переменные? Удобно и хорошо ли это? Вижу тут удобный доступ сразу из локальной функции прямо в глобалный массив.

Код:
<html><body>
<?php
$monthes = array(
1 => "Январь",
2 =>"Февраль",
3=>"Март",
4=>"Апрель"
);
function getMonthName($n){
	global $monthes;
	return $monthes[$n];
}
echo getMonthName(2);
?>
</body></html>
kilogram вне форума Ответить с цитированием
Старый 30.03.2012, 03:22   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Глобальные переменные это в принципе не очень хорошо. В Вашем случае ничего страшного не произойдёт, хотя можно было бы с таким же успехом объявить массив внутри функции. Но представьте себе небольшой проект, в котором примерно 100-200 файлов с кодом. И где Вы там найдёте эту несчастную переменную? Или случайно в какой-нибудь функции измените её ,хотя не предполагали этого. А потом полдня чёртиков ловить будете.
P.S. У меня только что было хуже. Предыдущий программист на работе не использовал глобальные переменные. Он просто записывал всё в $_SERVER
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 30.03.2012, 09:19   #3
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Глобальные переменные можно свободно использовать, но нельзя увлекаться, т.к. имеются две проблемы:
- Возможность переназначения. Greblin привел хороший пример.
- Автоматически не освобождается память. Лучше код по возможности разбивать на отдельные функции - локальные переменные сами удаляются.
Виталий Желтяков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
глобальные переменные wulf_01 PHP 0 15.11.2011 15:00
Глобальные переменные WiseElrond C++ Builder 3 31.10.2011 20:45
Глобальные переменные AesmaDiv Общие вопросы C/C++ 1 26.09.2011 20:22
Глобальные переменные Lokos Общие вопросы Delphi 3 05.05.2010 11:15