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.


 

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

19295. Служба директорий Active Directory 3.58 MB
  Лекция 11 Служба директорий Active Directory Для централизованного управления большими сетями охватывающими несколько миллионов пользователей и компьютеров и быстрого доступа к ресурсам Windows 2003 использует службу каталогов Active Directory. Под каталогом в данном случае понима...
19296. Пользователи и группы 6.31 MB
  Лекция 12 Пользователи и группы Группы Windows 2003/XP Основным инструментом для управления возможностями пользователей в Windows 2003 является понятие группы. Под группой понимается набор учетных записей пользователей. Использование групп упрощает управление ресурсами сист...
19297. Файловые системы Windows XP Professional/Server 2003 303.5 KB
  Лекция 13 Файловые системы Windows XP Professional/Server 2003 Файловая система является одним из самых важных компонентов сетевой операционной системы. В первую очередь сеть создается для разделения данных и от того каким образом организованы эти данные зависят и произво...
19299. Сетевая печать 328 KB
  Лекция 14 Сетевая печать В сетях Windows 2003 используются печатающие устройства подключенные к рабочим станциям XP и серверам приложений контроллерам доменов принтеры со встроенными сетевыми интерфейсами. Все эти способы подключения позволяют разделять ресурсы пе
19300. Защита информации в сетях Windows 20000 2.2 MB
  Лекция 15 Защита информации в сетях Windows 20000 Защита информации в сетях Windows 2003 предполагает использование локальной политики безопасности на рабочих станциях и системы безопасности обеспечиваемой Active Directory по доступу к ресурсам домена или доменов. В Windows 2003 опреде
19301. Интернет-приложения. Средства телекоммуникаций. Поисковые машины. Новостные ленты. Интернет-магазины. Электронная коммерция 607 KB
  Лекция 16 Интернетприложения. Средства телекоммуникаций. Поисковые машины. Новостные ленты. Интернетмагазины. Электронная коммерция Интернетприложения. Средства телекоммуникаций Наиболее распространенные современные средства общения для своей работы использ
19302. Конденсаторы. Система условных обозначений и маркировки конденсаторов 163 KB
  Лекция № 5 Конденсаторы 1. Классификация основные электрические характеристики и параметры 2. Система условных обозначений и маркировки конденсаторов 1. Классификация и основные характеристики Основные понятия Конденсаторы лат Condenso сгущать уплотнят...
19303. Резисторы. Устройство, характеристики и параметры нелинейных резисторов 88.5 KB
  Лекция 4 2.1 Резисторы 1. Классификация и параметры резисторов 2. Устройство и применение линейных резисторов 3. Устройство характеристики и параметры нелинейных резисторов 1. Классификация и параметры резисторов Основные понятия Термин резистор про