2013-07-05 13 views
6
function track_times() { 
static $i = 0; 
$i++; 
static $i = 5; 
return $i; 
} 

echo track_times() . "\n"; 
echo track_times() . "\n"; 

Il risultato è:Perché la seconda assegnazione della variabile statica ha effetto non il primo?

6 
7 

So che la gente non usano static variabili in questo modo, solo che non può spiegare il risultato. Il risultato implica che il secondo compito ha effetto, ma $i si incrementa prima dell'assegnazione, quindi perché la prima chiamata della funzione restituisce 6?

+0

ma perché vuoi scrivere questo modello? non sembra logico. – Raptor

risposta