PHP скрипты

MySQL

Apache

phpMyADmin

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 в теле функции имеет глобальную область видимости.

Поделиться с друзьями