Если я запустил следующий PHP-код, я получаю 123. Я не понимаю логики этого. То, что я думаю, когда я вызываю функцию каждый раз, когда предполагают, чтобы выход 1. Таким образом, выход должен быть как 111.Статическая переменная в PHP
function keep_track() {
STATIC $count = 0;
$count++;
print $count;
}
keep_track();
keep_track();
keep_track();
// output 123
Я знаю, что статическая переменная имеет значение даже после того, как функция выходов, но в приведенном выше function Я назначаю значение в самой первой строке, но он все еще добавляет +1 с предыдущим значением $count
.
Не могли бы вы объяснить это? (Прошу прощения, если мне кажется глупо .. но я пытаюсь выяснить, как именно это происходит)
Вы назначаете только начальное ** значение **. –
[Руководство PHP по статическим переменным] (http://www.php.net/manual/en/language.variables.scope.php#language.variables.scope.static) объясняет это хорошо –
Потому что '$ count' внутри функции увеличивается – samayo