Статические переменные в PHP PDF Печать E-mail

Помимо локальных и глобальных переменных, в 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 инкрементируется сразу после обнуления, а только потом выводится.

По материалам сайта: http://www.php.su/