7.4: Область видимости переменных
Главная Страница » Книги по PHP » Самоучитель PHP 5 для чайников с примерами » Область видимости переменных
При активной работе с пользовательскими функциями вы обязательно столкнетесь с проблемой области видимости переменных. Что это такое, лучше пояснить на примере листинга 7.9.
Листинг 7.9. Область видимости переменных.
‹html›
‹head›
‹title›Область видимости переменных‹/title›
‹/head›
‹body›
‹?php
function inc()
{
$num++;
}
$num = 1;
inc(); // вызываем функцию
echo $num; // выведет 1
?›
‹/body›
‹/html›
Результатом выполнения этой программы будет вывод числа 1. Другими словами, расположенные в теле функции и в основной программе переменные совершенно не связаны друг с другом, хотя имеют одинаковые имена. В этом случае говорят, что переменная, находящаяся внутри тела функции, имеет локальную область видимости, а та, которая располагается в основной программе, - глобальную. Локальные переменные объявляются внутри тела функции и недоступны извне. Глобальные переменные могут объявляться как в основной программе, так и в теле функции, но делается это с помощью специального оператора global (листинг 7.10).
Листинг 7.10. Глобальные переменные.
‹html›
‹head›
‹title›Глобальные переменные‹/title›
‹/head›
‹body›
‹?php
function inc()
{
global $num;
$num++;
}
$num = 1;
inc(); // вызываем функцию
echo $num; // выведет 2
?›
‹/body›
‹/html›
В этом случае выводится число 2, так как переменная $num в теле функции имеет глобальную область видимости.