#4.12 php Глобальные переменные

Локальные переменные ограничены той функцией, в рамках которой они используются. При этом переменные, описанные в основном скрипте (они называются глобальными), для функции являются недоступными. В отличие от некоторых других языков программирования, в РНР такой доступ по умолчанию запрещен, чтобы избежать конфликтов локальных и глобальных данных. Чтобы получить доступ к глобальным переменным, должно использоваться их явное описание при помощи оператора global. Следующий пример демонстрирует использование как локальных, так и глобальных переменных.

<HTML>
    <HEAD>
        <TITLE>
            Глобальные и локальные переменные
        </TITLE>
    </HEAD>
    <BODY>
        <H1>
            Глобальные и локальные переменные
        </H1>
        <?php
            function local_scope()
            {
                $value = 1000000;
                echo "Внутри функции \$value = ", $value, "<BR>";
            }

            function global_scope()
            {
                global $value;
                echo "Внутри функции глобальная переменная \$value = ",
                    $value, "<BR>";
            }

            $value = 5;
            echo "В теле.скрипта \$value = ", $value, "<BR>";
            local_scope();
            global_scope();
            echo "В теле скрипта все еще \$value = ", $value, "<BR>";
        ?>
    </BODY>
</HTML>

Результат выполнения примера представлен на рисунке.



Рис. 1. Использование глобальной переменной

Из примера видно, что после использования оператора global значение переменной $value стало доступно внутри функции global_scope. Вместо использования оператора global доступ к глобальным переменным можно получить при помощи специального суперглобального массива $GLOBALS, как показано в следующем фрагменте кода:

function global_scope()
{
    echo "Внутри функции глобальная переменная \$value = ",
    $GLOBALS ["value"], "<BR>";
}