Как передать переменную PHP через global?

Под ключевым словом (инструкцией) global в PHP понимается способ объявлния глобальных переменных.
Таким образом с помощью этой инструкции можно передать внешнюю переменную в функцию (помимо передачи параметра по ссылке) «объявив» ее глобальной до первого использования:

<?php ## Глобальные переменные в функции. 
$monthes = array( 
1 => "Январь", 
2 => "Февраль", 
// ... 
12 => "Декабрь" 
); 
// Возвращает название месяца по его номеру. Нумерация начинается с 1! 
function getMonthName($n) { 
global $monthes; 
return $monthes[$n]; 
} 
// Применение. 
echo getMonthName(2); // выводит "Февраль" 
?>

Есть и второй способ добраться до глобальных переменных. Это использование встроенного в язык массива $GLOBALS, ключи которого есть имена глобальных переменных, а значения — их величины.
Массив $GLOBALS доступен из любого места в программе — в том числе и из тела функции, и его не нужно никак дополнительно объявлять. Приведенную выше функцию getMonthName ($n) можно переписать более лаконично:

// Возвращает название месяца по его номеру. Нумерация начинается с 1! 
function getMonthName($n) { return $GLOBALS["monthes"][$n]; }

Как работает инструкция global

Конструкция global $a говорит о том, что переменная $а является глобальной, т. е. является синонимом глобальной $а. Таким образом иструкция global создает ссылку на массив $GLOBALS, т.о. эти две записи будут эквивалентны:

function test() { 
global $a;= 10; 
} 
 
function test() {= &$GLOBALS['a'];= 10; 
}


Добавление комментария: