2015-02-01 6 views
-1

PHP Manual состояния следующее:PHP статической переменной внутри функции

Другой важной особенностью видимости переменной является статическая переменная. Статическая переменная существует только в области локальных функций, но не теряет своего значения, когда выполнение программы выходит из этой области.

Мой код:

function keeptrack() { 
    static $count = 0; 
    $count += $count + 1; 
    echo $count; 

} 

keeptrack(); 
keeptrack(); 
keeptrack(); 

Выход: 137

Почему это не выход 123

+0

'статический $ Count = 0; echo ++ $ count; 'достаточно. –

ответ

1

причина в том, что с + =, что происходит было $count = $count + $count + 1

3

Вы не добавляя 1 к $count, вы добавляете текущее значение $count plus 1.

$count += $count + 1; 

То, что вы, вероятно, предназначены:

$count = $count + 1; 
+0

Простите, я немного опоздал, и я устал. Вы правы в своей логике. Я действительно имел в виду, что это '$ count + = 1' lol –

Смежные вопросы