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.


 

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

46323. Составление расчетной схемы и исходного управления для расчета зажимного усилия Рз 202 KB
  Составление расчетной схемы и исходного управления для расчета зажимного усилия Рз Закрепление заготовки производится с помощью зажимных устройств различных конструкций. Принцип действия и конструкцию зажимного устройства конструктор выбирает исходя из конкретных условий выполнения операций: типа производства величин сил резания действующих на заготовку при выполнении операций конструктивных особенностей заготовки типа станка. Выбор коэффициента трения f заготовки с опорными и зажимными элементами. Выбор коэффициента трения заготовки с...
46324. Составление расчетной схемы и исходного уравнения для расчета исходного усилия Ри 359 KB
  Наряду с изменением величины исходного усилия силовой механизм может также изменять его направление, разлагать на составляющие и совместно с контактными элементами обеспечивать приложение зажимного усилия к заданной точке. Иногда силовые механизмы выполняют роль самотормозящего элемента, препятствуя раскреплению заготовки при внезапном выходе из строя привода.
46325. Расчет приводов зажимных устройств 73 KB
  Благодаря использованию более высокого давления жидкости по сравнению с пневмоприводом при тех же развиваемых усилиях имеет меньшие габариты и вес; масло обеспечивает смазку трущихся частей. 5 – низкого давления и большой производительности и 4 – высокого давления и малой производительности. После замыкания механизма упора зажимного элемента в деталях давления в системе увеличивается и напорный золотник 6 отключает насос низкого давления. В дальнейшем будет уже работать только насос высокого давления рис.
46326. Электромеханические приводы защитных устройств 58.5 KB
  Электромеханические приводы защитных устройств Электромеханические зажимные устройства ЭМЗУ состоят из электродвигателя передаточного механизма зажимных элементов. Электродвигатель работает кратковременно только при зажиме или отжиме поэтому в ЭМЗУ всегда имеется самотормозящая передача для фиксирования состояния системы после зажима и отключения двигателя. В квазистатических ЭМЗУ сила зажима создается только за счет электромагнитного момента двигателя и величина этой силы определяется настройкой динамометрирующих упругих элементов в...
46327. Выращивание зерновых и снижение затрат на их обработку 587.76 KB
  Однако в Россию завозится большое количество продуктов питания изза рубежа что способствует повышению продуктивной зависимости от стран запада и политическую зависимость страны. руб. руб. продукции руб.
46328. Проектирование приводной станции к полочному элеватору 1.74 MB
  Нахождение коэффициента запаса прочности. Нахождение коэффициента запаса прочности. Нахождение коэффициента запаса прочности Подбор подшипников по динамической грузоподъемности. Кинематический и энергетический расчет привода Мощность элеватора определяется по уравнению где Z – производительность элеватора.
46329. Увеличение мощности пути железных дорог. Совершенствование машин с точки зрения ремонтопригодности 16.83 MB
  Увеличение мощности пути железных дорог требует усовершенствования технологии и организации ремонтнопутевых работ. Своевременный и качественный ремонт пути снижение затрат времени труда и эксплуатационных расходов повышение производительности труда достигает акиалной1 еханизацией путевых работ. Основным направлением в вопросе механизации путевых работ является создание высокопроизводительных машин обеспечивающих производство больших объемов работ в сравнительно небольшие окна и вынесение значительной части работ на путевые...
46330. Повышене результативности камерального контроля 172.9 KB
  Для достижения поставленной цели необходимо решить следующие задачи: изучить теоретические подходы к содержанию камеральной проверки определить её место и роль в системе государственного налогового контроля; исследовать нормативноправовой механизм камерального контроля в России; исследовать современное состояние контрольной деятельности на примере Межрайонной инспекции ФНС России; определить результативности камерального и выездного контроля сравнить их; разработать рекомендации по повышению результативности камерального контроля....
46331. Вольтметр электростатической системы, подключенный к источнику напряжения, имеющего форму прямоугольных однополярных импульсов, со скважностью 100 имеет показание 100 В 131.54 KB
  Решение: Рассчитаем в MthCD действующее значение напряжения которое измеряет вольтметр электростатической системы: Мгновенное значение напряжения Действующее значение напряжения Найдем Um из полученного выражения: В Рассчитаем в MthCD показание выпрямительного вольтметра с однополупериодной схемой выпрямления подключенного к тому же источнику. В Найти показания вольтметра вида В3 с детектором СКЗ и открытым входом при измерении им напряжения сигнала если Uv= В Um 0 Ut T t Вольтметр вида В3 с открытым...