На этом шаге мы рассмотрим область видимости переменных.
При активной работе с пользовательскими функциями вы обязательно столкнетесь с проблемой области видимости переменных. Что это такое, лучше пояснить на примере:
<?php
function inc()
{
$num++;
}
$num = 1;
inc(); // вызываем функцию
echo $num; // выведет 1
?>
Результатом выполнения этой программы будет вывод числа 1. Другими словами, расположенные в теле функции и в основной программе переменные совершенно не связаны друг с другом, хотя имеют одинаковые имена. В этом случае говорят, что переменная, находящаяся внутри тела функции, имеет локальную область видимости, а переменная, которая располагается в основной программе, - глобальную. Локальные переменные объявляются внутри тела функции и недоступны извне. Глобальные переменные могут объявляться как в основной программе, так и в теле функции, но делается это с помощью специального оператора global. Например:
<?php
function inc()
{
global $num;
$num++;
}
$num = 1;
inc(); // вызываем функцию
echo $num; // выведет 2
?>
В этом случае выводится число 2, так как переменная $num в теле функции имеет глобальную область видимости.
На следующем шаге мы рассмотрим время жизни переменных.