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.


 

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

58027. Створення форм у HTML-сторінках 794.5 KB
  Навчальна: опанувати технологію і методи створення форм в HTML-документах Розвивальна: розвивати логічне мислення, пізнавальний інтерес до дисципліни та обраної спеціальності; Виховна: виховувати акуратність у веденні електронної документації...
58028. Іменники середнього роду 94 KB
  Мета: Активізувати вивчену лексику. Вчити ознаки іменників середнього роду. Познайомитися зі зменшувальними суфіксами виконувати тренувальні вправи. Розвивати навички письма, граматичні навички.
58029. Завершение формирования мировых колониальных империй. Международные отношения в последней трети XIX века 122 KB
  Цели: Сформировать представление об Индии во второй половине XIX века; ознакомить с принципами колониальной политики Британии в Индии; раскрыть причины ход и результаты восстание сипаев; формировать собственные суждения об идеологии бремени белого человека...
58030. Индия. Культурно — исторические особенности. Экономико-географическая характеристика 118 KB
  Цель: сформировать у учащихся общие представления о культуре и экономических особенностях Индии; совершенствовать навыки учащихся самостоятельно отбирать и анализировать материал; продолжить формирование умений обобщать и делать выводы; воспитывать ответственность...
58031. Давня Індія 78.5 KB
  Слово вчителя: Шановні учні сьогодні ми з вами помандруємо на Схід до цікавої і загадкової Індії. Вивчення нового матеріалу Географічне положення Індії Робота з картою.
58032. Застосування дієприкметника як особливої форми дієслова у захисті проектів «Особливості догляду за шкірою підлітків» 1.94 MB
  МЕТА: виховувати в учнів любов до вивчення української мови; творчу ініціативу та свідоме ставлення до зміцнення й збереження власного здоров’я; розвивати мовленнєву компетенцію учнів та навички комунікативно користуватися засобами мови в різних життєвих ситуаціях...
58033. Прості і складені задачі, які включають дії над величинами, вираженими одиницями площі 58.5 KB
  Цілі: освітні: формувати обчислювальні уміння і навички, уміння розв’язувати задачі, аналізувати математичні завдання; розвивальні: розвивати логічне і алгоритмічне мислення, пізнавальні та інтелектуальні можливості, стимулювати розвиток умінь учнів аргументувати свою відповідь...
58034. Застосування інтеграла до моделювання процесів 2.54 MB
  Навчальна: узагальнити і систематизувати знання студентів з теми «Інтеграл та його застосування»; сприяти закріпленню знань про геометричний, фізичний та економічний зміст інтеграла; формувати вміння й навички студентів самостійно систематизувати та поглиблювати знання...
58035. Применение интеграла 107 KB
  Цель: Обобщить и систематизировать знания по теме Применение интеграла. Актуализация опорных знаний Определение первообразной; Определение неопределенного интеграла; Определение интеграла...