global импортирует глобальную переменную в локальную область видимости функции:
$counter = 0;
function increment() {
global $counter;
$counter++;
}
increment();
echo $counter; // 1
Альтернатива - суперглобальный массив $GLOBALS:
function increment() {
$GLOBALS['counter']++;
}
Использование global считается плохой практикой - создает неявные зависимости, усложняет тестирование. Лучше передавать зависимости через параметры функций или Dependency Injection.