69692

Локальні і глобальні змінні

Доклад

Информатика, кибернетика и программирование

Локальні змінні доступні тільки у функції а глобальні доступні у всій програмі. Локальні і глобальні змінні Змінні i і g глобальні вони доступні у всій програмі. Для передачі глобальних змінних у функцію використовується інструкція...

Украинкский

2014-10-08

53.5 KB

2 чел.

Тема 20: Локальні і глобальні змінні

Ми неодноразово стикалися в цій книзі з локальними і глобальними змінними. Локальні змінні доступні тільки у функції, а глобальні — доступні у всій програмі. Вони доступні всім функціям. У лістингу 8.5 приведений невеликий приклад:

Лістинг 8.5.Использование глобальних і локальних змінних

$i   =   10;

$g   =   7;

function fl ()

{

$x = 5;

5i = 0; global $g;

echo "g = $g\n"; echo "i = $i\n";

fi();

echo "$x\n";

Мал. 8.3. Локальні і глобальні змінні

Змінні $i і $g — глобальні, вони доступні у всій програмі. Для передачі глобальних змінних у функцію використовується інструкція global:

global   список   змінних

Якщо ми не виконаємо цю інструкцію, наша функція не дістане доступ до змінній $g. Звернете увагу на дві змінні $i: одна з них глобальна, а інша — локальна (у тілі функції).

У функції використовуватиметься локальна змінна, проте, якщо ми оголосимо змінну глобальної:

global   $g,   $i;

то використовуватиметься значення глобальної змінної. Спробуйте змінити функцію  fl (див. перед. лістинг 8.5) так (див. лістинг 8.6):

Лістинг 8.6. Некоректне використання глобальних і локальних змінних

<?

$i   =   10; $g   =   7;

function   fl () {

$i = 5;

echo $i;   // виведе 5

global $i;

echo $i;   // виведе 10

} fl();

?>

Змінна $х є локальною і недоступна в основній програмі, тому ми отримаємо повідомлення про те, що дана змінна не визначена (див. мал. 8.3).

Якщо функція змінить значення глобальної змінної, то значення змінної буде змінено і в основній програмі.

Приклад:

<?

$g   =   5;

function   fl()     {    global    $g;    $g   »   10;    );

fl();

echo   $g;    //   виведе   10

?>

Ми вже говорили про масив SGLOBALS, тому я не стану повторюватися, а лише скажу, що локальні змінні функцій не є елементами даного масиву.

8.7. Статичні змінні

Окрім локальних і глобальних змінних, в PHP існує ще один тип змінних — статичні. Якщо в тілі функції оголошена статична змінна, то компілятор її не видалятиме після завершення роботи функції. Наступний приклад демонструє роботу із статичною змінною:

<?

function   fl()    (   static   $x;   $x++;   echo   "Sx   ";    }

for    ($i=0;    $i++<5;    )    fl();

?>

Наступний сценарій виведе рядок 1 2 3 4 5. Якщо видалити інструкцію static, буде виведений рядок 1 1 1 1 1, тому що змінна $х віддалятиметься при завершенні роботи функції і обнулятиметься при кожному її виклику. Чому 1 1 1 1 1, а не 0 0 0 0 0? Змінна $х инкре-ментируется відразу після обнулення, а тільки потім виводиться. Статичні змінні не є елементами SGLOBALS.


 

А также другие работы, которые могут Вас заинтересовать

10804. Учет в Древнем Египте 76.09 KB
  Реферат По дисциплине: Бухгалтерский учет Тема: Учет в Древнем Египте Содержание: Введение Возникновение и развитие учета в Древнем Египте Инвентаризация Заключение Список использованной литературы Введение...
10805. Аппроксимация данных эллиптическими полиномами 154.01 KB
  1 Аппроксимация данных эллиптическими полиномами Аннотация В статье предлагается новое поле для приложения эллиптических функций аппроксимация дискретных значений процессов и сигналов зафиксированных через равные промежутки времени. Аппр
10806. Тепловые поля. Уравнение теплопроводности в твердых телах 90.12 KB
  Тепловые поля. Уравнение теплопроводности в твердых телах. Теплопроводность представляет собой процесс распространения энергии между частицами тела находящимися друг с другом в соприкосновении и имеющими различные температуры. Рассмотрим нагрев какоголибо одноро...
10807. Системи управління якістю підприємство автомобільного транспорту 187.78 KB
  Вступ За сучасними міжнародними і вітчизняними нормативними вимогами щодо системи управління якістю розроблено карту процесу контролю та випробування продукції. Запропоновано оптимальну схему організації і проведення контролю якості продукції із плануванням запобі...
10808. Пособие по языку С++ 997.5 KB
  Введение Данное пособие составлено для того чтобы помочь студентам научиться разрабатывать программное обеспечение компьютеров. В нем рассматриваются такие базовые понятия как алгоритм компьютер и программа. Для разработки программ используется алгоритмический я...
10809. Лексічны састаў сучасных заалагічных найменняў 114.78 KB
  РЭФЕРАТ Петраковіч Кацярына Іванаўна. Структурнасемантычная арганізацыя сучаснай заалагічнай наменклатуры. У данай рабоце разглядаецца лексічны састаў сучасных заалагічных найменняў. Дыпломная праца складаецца з уводзін трох глаў заключэння спіс...
10810. Здабыткі, праблемы, шляхі рэалізацыі факультатыўных заняткаў па беларускай мове ў вучэбным працэсе 125.47 KB
  Змест Уводзіны. Змест факультатыўных заняткаў па бел. мове. Факультатывы скіраваныя на развіцце культуры маўлення. Факультатывы звязаныя з развіццем звязнага маўлення. Развіцце творчых здольнасцяў школьнікаў на занятках факультатыва. Развіцц...
10811. Измерение джиттера в цифровых системах передачи. Построение глазковой диаграммы 560.85 KB
  Лабораторная работа Измерение джиттера в цифровых системах передачи. Построение глазковой диаграммы Цель работы: исследовать возможность и перспективность применения глазковых диаграмм для анализа цифровых сигналов. Теоретические сведения Джиттером или фазов...
10812. Фізика - наука про природу. Фізичні тіла та фізичні явища. Механічні, теплові, електричні, магнітні та світлові явища 48 KB
  Канікули пролітають швидко, і ось уже все менше лишається «літніх» аркушів календаря. Діти, що приходять до школи 1 вересня, завжди свідомо чи підсвідомо чекають чогось зовсім нового та цікавого. Як би було чудово, якщо б ці сподівання не зникли та не забулися потроху в суєті шкільних буднів