X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Локальные переменные, Почему они лучше глобальных?
RussiaStudent
RussiaStudent
Topic Starter сообщение 9.2.2009, 23:26; Ответить: RussiaStudent
Сообщение #1


Сегодня мы в университете изучали функции и затронули тему глобальных и локальных переменных.
Преподаватель нам сказал, что глобальные переменные видны во всей программе, а локальные существуют только в пределах той функции в которой мы её объявили. Вот к примеру я написал длва примера на PHP с использование глобальных и локальных переменных.
С глобальными переменными
<?php
$a = 1;
$b = 2;

function Sum() //объявляем тело функции
{
    global $a, $b;

    $b = $a + $b;
}

Sum(); //вызываем функцию
echo $b; //выведется 3
?>

С локальными переменными
<?php
$a = 1;
$b = 2;

function Sum($c, $d) //объявляем тело функции
{
    $d = $c + $d;
    return $d;
}

$b = Sum(); //вызываем функцию и присваиваем значение переменной $b
echo $b; //выведется 3
?>

Но кто может мне сказать, почему преподаватель сказал нам, что использовать глобальные переменные это плохойц тон в программировании? Ведь работать-то с такими переменными намного проще. Я никак не могу понять, зачем ограничивать доступ к переменной, если можно просто задавать всё глобально и не мучаться с передаваемыми значениями.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 10.2.2009, 10:57; Ответить: ZiTosS
Сообщение #2


RussiaStudent, тогда представим такую картину. Тебе дают разобраться в программе состоящей из 1000 файлов. Если половина переменных у тебя будет глобальными в том коде. Ты никогда не разберешься, что откуда пришло и где изменилось.
Что же касается Локальных переменных, преимущества:
1) Хорошая структуризация кода (значение переменной передаётся в функцию, значение возвращается их функции, локальная переменная существует только в той функции, в которой она объявлена);
2) Легко читается программа (где используется та или иная переменная, всё по закономерности, переменная либо передаётся в функцию, либо объявляется(определяется) в теле функции);
3) Меньшая возможность допускания ошибки в программе.
Вот ты случайно изменил где-то глобальную переменную, а где из большого количества файлов, ты найти не можешь.
А при модульном подходе, изменение можно произвести только в предназначенных для этого функциях, глобальных переменных вообще быть не должно.

Вот основные аспекты, почему я за модульное программирование без глобальных переменных.
Максимум когда я объявляю или определяю глобальные переменные, это либо параметры конфигурации скрипта, либо используемые в цикле счётчики и подобное.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 19.4.2024, 18:37
Дизайн