Статические переменные в PHP
Помимо локальных и глобальных переменных, в PHP существует еще один тип переменных - статические переменные.
Если в теле пользовательской функции объявлена статическая переменная, то компилятор не будет ее удалять после завершения работы этой функции.
Объявление статических переменных:
<?php
function funct(){
static $int = 0; // верно
static $int = 1+2; // неверно (поскольку это выражение)
static $int = sqrt(121); // неверно (поскольку это тоже выражение)
$int++;
echo $int;
}
?>
Пример работы пользовательской функции, содержащей статические переменные:
<?php
function funct()
{
static $a;
$a++;
echo "$a";
}
for ($i = 0; $i++<10;) funct();
?>
Данный сценарий выводит строку:
1 2 3 4 5 6 7 8 9 10
Если мы удалим инструкцию static, будет выведена строка:
1 1 1 1 1 1 1 1 1 1
Это связано с тем, что переменная $a будет удаляться при завершении работы функции и обнуляться при каждом ее вызове. Переменная $a инкрементируется сразу после обнуления, а только потом выводится.
Смотрите также:
Локальные переменные в PHP
Глобальные переменные в PHP