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.


 

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

10143. Античная ученость: факторы формирования, особенности, предметная направленность и основные достижения 38.5 KB
  Античная ученость: факторы формирования особенности предметная направленность и основные достижения Предпосылкой возникновения научных знаний многие исследователи истории науки считают миф. В нем как правило происходит отождествление различных предметов я...
10144. Западноевропейская средневековая ученость, ее особенности и направленность 38 KB
  Западноевропейская средневековая ученость ее особенности и направленность. Христианское мировоззрение Средневековья сыграло двойственную роль в эволюции науки. С одной стороны оно принижало значение науки по сравнению с верой с другой стороны оно принесло идеи
10145. Познание эпохи Возрождения, его специфика и значение в истории науки 39 KB
  Познание эпохи Возрождения его специфика и значение в истории науки. С первых двух глобальных революций в развитии научных знаний происходивших в XVIXVII вв. создавших принципиально новое по сравнению с античностью и средневековьем понимание мира и началась класси
10146. Факторы формирования науки Нового времени, специфика ее как сферы деятельности и социального института 68 KB
  Факторы формирования науки Нового времени специфика ее как сферы деятельности и социального института. В Новое время сложилась механическая картина мира утверждающая: вся Вселенная совокупность большого числа неизменных и неделимых частиц перемещающихся в а...
10147. Основные направления развития науки Нового времени. Научно-исследовательские программы Нового времени 46 KB
  Основные направления развития науки Нового времени. Научно-исследовательские программы Нового времени В XVII в. социокультурные основания обусловившие тенденции секуляризации познания и возрастания его индивидуального творческого характера углубляются. B экономичес...
10148. Направления развития и важнейшие результаты науки в ХVIII - XIX вв. Формирование дисциплинарной организации науки 30.5 KB
  Направления развития и важнейшие результаты науки в ХVIII – XIX вв. Формирование дисциплинарной организации науки. Наука в своих развитых формах является дисциплинарноорганизованным знанием. Отдельные отрасли и научные дисциплины выступают как относительно автоном
10149. Методологические принципы и социально-организационные изменения науки в XVIII - XIX вв. Формирование науки как профессиональной деятельности 38.5 KB
  Методологические принципы и социально-организационные изменения науки в XVIII XIX вв. Формирование науки как профессиональной деятельности К наиболее примечательным методологическим разработкам того времени относятся: формирование эксперимента как базового метода эмп...
10150. Многообразие типов научного знания. Специфика естественных, гуманитарных и технических наук. 48 KB
  Многообразие типов научного знания. Специфика естественных гуманитарных и технических наук. Рассматривая познание как деятельность мы можем поставить следующую проблему. Можно ли утверждать что по аналогии с многими видами деятельности человека познавательна
10151. Соотношение эмпирического т теоретического уровней научного знания. Изменение представлений о взаимосвязи теории и эмпирии в философии науки ХХ в. 27.5 KB
  Соотношение эмпирического т теоретического уровней научного знания. Изменение представлений о взаимосвязи теории и эмпирии в философии науки ХХ в. Внутренняя структура науки определяется в п.о. через выделение в ее составе теоретического и эмпирического познания. Т.