PHP では基本的に関数内の変数はローカル変数として扱われるため、関数内からグローバル変数にアクセスするためには特殊な宣言をする必要があります。
オートグローバル変数として自動的に定義される $GLOBALS 配列変数は、どのスコープからでもアクセスできるようになっています。
全てのグローバル変数は、この $GLOBALS 配列を介して参照できるようになっています。
$g_val = 100;
function change_global() {
    $GLOBALS['g_val'] = 200;
}
change_global();
print $g_val;  # => 200
関数内で、global を使った参照宣言を行うことでも、グローバル変数にアクセスすることができるようになります。
$g_val = 100;
function change_global() {
    global $g_val;
    $g_val = 200;
}
change_global();
print $g_val;  # => 200
global キーワードを使用するより、オートグローバル変数 $GLOBALS を使った方が、コードとしてはグローバル変数にアクセスしていることが明確になります。