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.


 

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

11993. Пластиковые карты, как один из видов банковского продукта 776.66 KB
  Тема: Пластиковые карты как один из видов банковского продукта Содержание Введение 1.Экономическая сущность пластиковых карт 1.1 Понятие банковского продукта 1.2 Пластиковые карты как банковский продукт 1.3 Принципы работы пластиковых карт 2. Особенности
11995. Пластиковые карты: проблемы и перспективы их внедрения в коммерческом банке (по материалам Поволжского банка ОАО Сбербанка России) 694 KB
  Выпускная квалификационная работа Пластиковые карты: проблемы и перспективы их внедрения в коммерческом банке по материалам Поволжского банка ОАО Сбербанка России Введение Современное развитие рынка финансовых услуг оказываем...
11996. Базовый курс по рынку ценных бумаг 772.04 KB
  Базовый курс по рынку ценных бумаг Учебное пособие рекомендовано Федеральной комиссией по рынку ценных бумаг для подготовки к базовому экзамену Базовый курс по рынку ценных бумаг. М.: Финансовый издательский дом Деловой экспресс 1997 485 с. ISBN 5896440030 Осн
11997. Изучение и анализ процесса кредитования осуществляемого Волгоградским ОСБ № 8621 261.12 KB
  Содержание Введение 1. Сущность и цели кредитной политики волгоградского ОСБ № 8621 1.1 Характеристика Волгоградского ОСБ № 8621 1.2 Кредитная политика банка и процесс кредитования 1.3 Операционный риск процессов кредитования 2. Оценка кредитного по
11998. ОБГРУНТУВАННЯ МАРКЕТИНГОВОЇ (РИНКОВОЇ) СТРАТЕГІЇ КОМЕРЦІЙНОГО БАНКУ І МЕХАНІЗМІВ ЇЇ РЕАЛІЗАЦІЇ ( НА МАТЕРІАЛАХ ТОВ УКРПРОМБАНК) 63.31 KB
  ЗВІТ про результати переддипломної практики на тему Обгрунтування маркетингової ринкової стратегії КОМЕРЦІЙНОГО БАНКУ і механізмів її реалізації НА МАТЕРІАЛАХ тов укрпромбанк Зміст Вступ 1 Загальна характеристика діяльності ТОВ Укрпромб
12000. Стратегія банків України на ринку цінних паперів 820.5 KB
  ЗВІТ ПРО ПЕРЕДДИПЛОМНУ ПРАКТИКУ на тему: Стратегія банків України на ринку цінних паперів ЗМІСТ ВСТУП РОЗДІЛ 1 СУТНІСТЬ ТА КЛАСИФІКАЦІЯ ОБЄКТІВ І СУБЄКТІВ РИНКУ ЦІННИХ ПАПЕРІВ УКРАЇНИ 1.1 Обєкти ринку цінних паперів в Україні: сутність та структура 1.2 Суб’єк...
12001. Расчет системы теплоснабжения молочного предприятия в городе Москва» 411.56 KB
  Надежное и экономичное обеспечение предприятий теплоносителями требуемых параметров, гарантирующими производство качественной продукции, является важной задачей. Актуальность данной проблемы определяется так же ограниченностью невозобновляемых энергоресурсов