Курс "Язык программирования PHP"
Шрифт:
Использование переменных внутри функции
Глобальные переменные
Чтобы использовать внутри функции переменные, заданные вне нее, эти переменные
В результате работы этого скрипта получим:
Когда переменная объявляется как глобальная, фактически создается ссылка на глобальную переменную. Поэтому такая запись эквивалентна следующей (массив GLOBALS содержит все переменные, глобальные относительно текущей области видимости):
Это значит, например, что удаление переменной $var1 не удаляет глобальной переменной $_GLOBALS["var1"].
Статические переменные
Чтобы использовать переменные только внутри функции, при этом сохраняя их значения и после выхода из функции, нужно объявить эти переменные как статические. Статические переменные видны только внутри функции и не теряют своего значения, если выполнение программы выходит за пределы функции. Объявление таких переменных производится с помощью ключевого слова static:
Статической переменной может быть присвоено любое значение, но не ссылка.
Возвращаемые значения
Все функции, приведенные выше
в качестве примеров, выполняли какие-либо действия. Кроме подобных действий, любая функция может возвращать как результат своей работы какое-нибудь значение. Это делается с помощью утверждения return. Возвращаемое значение может быть любого типа, включая списки и объекты. Когда интерпретатор встречает команду return в теле функции, он немедленно прекращает ее исполнение и переходит на ту строку, из которой была вызвана функция.Например, составим функцию, которая возвращает возраст человека. Если человек не умер, то возраст считается относительно текущего года.
В этом примере можно было и не использовать функцию return, а просто заменить ее функцией вывода echo. Однако если мы все же делаем так, что функция возвращает какое-то значение (в данном случае возраст человека), то в программе мы можем присвоить любой переменной значение этой функции:
В результате работы функции может быть возвращено только одно значение. Несколько значений можно получить, если возвращать список значений (одномерный массив). Допустим, мы хотим получить полный возраст человека с точностью до дня.
Когда функция возвращает несколько значений для их обработки в программе, удобно использовать языковую конструкцию list, которая позволяет одним действием присвоить значения сразу нескольким переменным. Например, в предыдущем примере, оставив без изменения функцию, обработать возвращаемые ей значения можно было так: