PHP: Статические переменные
Статические переменные - это переменные, которые не исчезают после завершения работы функции. Значение статической переменной можно использовать при следующем вызове функции - она по прежнему будет иметь то же значение, которое получила при последнем вызове функции. Статическая переменная объявляется с помощью ключевого слова static
.
При объявлении статической переменной в функции создается постоянное хранилище, в результате чего статическая переменная запоминает свое последнее значение. Стоит отметить, что статическая переменная существует только в локальной области видимости функции и не видна за ее пределами:
<?php // определение функции function birth() { // определяем переменную age как статическую static $age = 0; //увеличиваем значение age на 1 $age = $age + 1; // выводим на экран значение переменной echo "Значение статической переменной: $age<br>"; } // вызываем дважды функцию birth(); birth(); ?>
В результате будет выведено:
Значение статической переменной: 1
Значение статической переменной: 2
Как вы могли заметить, теперь значение переменной $age
сохраняется между вызовами функции birth()
. Это значение будет существовать, пока выполнение программы не завершится.
Замечание: статические переменные имеют одну особенность, во время объявления переменной (ее инициализации), ей может быть присвоено только статическое значение. Попытка присвоить этим переменным значения, являющиеся результатом выполнения работы выражений, вызовет ошибку обработки:
<?php function foo() { static $x = 5; // верно (статическое значение) static $x = 1+2; // неверно (поскольку это выражение) static $x = sqrt(121); // неверно (поскольку это тоже выражение) $x++; echo $x; } ?>
Итак, нам осталось рассмотреть еще один тип переменных - суперглобальные переменные.
С этой темой смотрят: