Область видимости переменных

Переменные в функциях имеют локальную область видимости. Это означает, что если даже локальная и внешняя переменные имеют одинаковые имена, то изменение локальной переменной никак не повлияет на внешнюю переменную:

<?
function get_sum()
{
$var = 5; // локальная переменная
echo $var;
}
$var = 10; // глобальная переменная
get_sum(); // выводит 5 (локальная переменная)
echo("<br>$var"); // выводит 10 (глобальная переменная)
?>

Локальную переменную можно сделать глобальной, если перед ее именем указать ключевое слово global. Если внешняя переменная объявлена как global, то к ней возможен доступ из любой функции:

<?
function get_sum()
{
global $var;
$var = 5; // изменяем глобальную переменную
echo $var;
}
$var = 10;
echo("$var<br>"); // выводит 10
get_sum(); // выводит 5 (глобальная переменная изменена)
?>

Доступ к глобальным переменным можно получить также через ассоциативный массив $GLOBALS:

<?
function get_sum()
{
$GLOBALS["var"] = 20; // изменяем глобальную переменную $var
echo($GLOBALS["var"]);
}
$var = 10;
echo("$var<br>"); // выводит 10
get_sum(); // выводит 20 (глобальная переменная изменена)
?>

Массив $GLOBALS доступен в области видимости любой функции и содержит все глобальные перемене, которые используются в программе.

<<< - Предыдущая | Cледующая ->>>