Под ключевым словом (инструкцией) 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; } |