«Global и Static: переменные функций» – шестой урок учебника PHP. В этом уроке мы поговорим об использовании локальных и глобальных переменных в функциях PHP.
Переменные в PHP имеют определенные зоны видимости: глобальные переменные - одинаковы внутри всей программы, локальные - только внутри исполняемой функции.
Использование переменных в функциях.
В прошлом уроке мы поверхностно затронули тему использования переменных внутри функции. Теперь мы поговорим о двух основных типах переменных:
Внутри функции возможно использовать внешние переменные, для чего необходимо их перечислить после global:
<?
$a=1;
function Globz()
{
global $a;
$a = $a*2;
echo 'функция изменила глобальное значение переменной $a, теперь она равна ',$a."<br><br>";
}
echo 'до вызова функции переменная $a была равна ',$a,',<br><br> ';
Globz();
echo "<br>";
echo 'проверяем значение $a вне функции: ',$a,',<br> ';
?>
до вызова функции переменная $a была равна 1,
функция изменила глобальное значение переменной $a, теперь она равна 2
проверяем значение $a вне функции: 2,
В данном примере мы использовали внутри функции глобальную переменную $a, засчет чего функция способна изменить значение переменной в результате своей работы, в чем вы самостоятельно могли убедиться.
Статические переменные (static)
Область видимости статических переменных ограничивается областью самой функции. Любые действия над этими переменными не могут выйти за границы самой функции. Для использования статических переменных необходимо перечислить их внутри функции после слова static:.
Рассмотрим использование статических переменных на примере:
<?
$d = 5;
function Static1()
{
static $d;
$d = 2;
echo "Внутри функции переменная d=".$d."<br>";
}
Static1();
echo "А вне ее – ".$d;
?>
Внутри функции переменная d=2 А вне ее - 5
Как вы можете видеть внутри функции переменная $d имеет одно значение, а вне ее – совершенно другое.
Возвращаемые значения
Любая функция PHP может возвращать в качестве своей работы некоторое значение. Для этого используется оператор return:
<?php
function f1($a, $b)
{
$c=($a+$b)\2;
return $c;
}
echo "Среднее арифметическое чисел 4 и 88 равно ".f1(4, 88)."<br>";
echo "Среднее арифметическое чисел 6 и 10 равно ".f1(6, 10)."<br>";
?>
Среднее арифметическое чисел 4 и 88 равно 46 Среднее арифметическое чисел 6 и 10 равно 8
В данном примере мы использовали функцию, которая возвращает среднее значение двух чисел при помощи return. Функция принимает два аргумента, находит их среднее значение, присваивает его переменной $c и возвращает ее. Поэтому, если заключить вызов функции внутри оператора echo, произойдет вывод среднего значения на экран, как это и было сделанно в примере:
echo "Среднее арифметическое чисел 4 и 88 равно ".f1(4, 88)."<br>";
В результате работы функции может быть возвращенно лишь одно значение, но это ограничение можно легко обойти, разместив все необходимые результаты работы функции внутри массива.
В данном уроке мы научились использовать глобальные и локальные переменные в контексте функций PHP и поговорили о возможности возврата функциями результатов своей работы при помощи оператора return.
Как я уже говорил ранее, PHP является очень функциональным языком програмирования, несмотря на ограничение его использования границами web-документов. В следующем уроке мы поговорим о такой важной особенности PHP, как работа с внешними файлами.