Глобальные переменные в PHP

В PHP существует несколько видов переменных – это глобальные и локальные. И многие начинающие программисты не понимают в чем их разница, поэтому в данной статье я попытаюсьвсе это на примерах объяснить.

Глобальные переменные – это переменные, которые доступны на протяжение всего скрипта, в том числе и в теле пользовательских функций.

Локальные переменные – это переменные, которые объявлены внутри функций и доступны они только там.

Итак, разберем первый пример:

<?php
$a = 10; // Глобальная переменная
function funcName() {
    $a = 5; // Локальная переменная
}
funcName();
echo $a; // Выведет 10
?>;

На выходе данный скрипт выведет 10, т.е. значение глобальной переменной $a. Хотя мы видим, что в теле функции объявлена локальная переменная с именем аналогичным глобальной переменной.  Но данная локальная переменная никакого отношения не имеет к глобальной. Эта локальная переменная будет доступна только внутри функции funcName().

Именно поэтому мы получили на выходе значение 10.

Если нам необходимо внутри функции изменить значение глобальной переменной, то для этого мы можем воспользоваться следующим кодом:

<?php
$a = 10; // Глобальная переменная
function funcName() {
    global $a;
    $a = 5; // Меняем значение глобальной переменной $a
}
funcName();
echo $a; // Выведет 5
?>;

В этом случае, мы внутри функции указали, перед переменной $a, зарезервированную команду global, тем самым мы получили доступ к глобальной переменной $a и внутри функции изменили ее значение на 5.

Также аналогично можно получить доступ к глобальным переменным с помощью суперглобального массива $GLOBALS.

Ниже приведен код, аналогичный второму примеру.

<?php
$a = 10; // Глобальная переменная
function funcName() {
    $GLOBALS['a'] = 5; // Меняем значение глобальной переменной $a
}
funcName();
echo $a; // Выведет 5
?>

Теперь благодаря данной статье, вы знаете отличие глобальных переменных от локальных и уже на практике сможете с ними работать.

Добавить комментарий