Heim > Backend-Entwicklung > PHP-Tutorial > Über statische PHP-Variablen

Über statische PHP-Variablen

WBOY
Freigeben: 2016-09-19 09:16:34
Original
1021 Leute haben es durchsucht

Speichern die statischen Variablen von PHP nicht nur eine Kopie im Speicher? Ich habe heute den folgenden Code ausprobiert und habe einige Fragen

<code>function test(){
    static $sum = 0;
    static $sum = 20;
    for ($i=0; $i < 100; $i++) { 
        $sum = $sum + $i; 
    }
    echo  $sum;
}
echo "<pre class="brush:php;toolbar:false">";
    test();//4970
echo "<br />";
    test();//9920
echo "<br />";
    test();//14870
    
    </code>
Nach dem Login kopieren
Nach dem Login kopieren

Da es nur eine Kopie im Speicher gibt, ist ein erneuter Aufruf wie eine direkte Referenz. Warum wurde also $num zum ersten Mal 20 zugewiesen?
Sollte das Ergebnis des ersten Laufs nicht 4950 sein

Antwortinhalt:

Speichern die statischen Variablen von PHP nicht nur eine Kopie im Speicher? Ich habe heute den folgenden Code ausprobiert und habe einige Fragen

<code>function test(){
    static $sum = 0;
    static $sum = 20;
    for ($i=0; $i < 100; $i++) { 
        $sum = $sum + $i; 
    }
    echo  $sum;
}
echo "<pre class="brush:php;toolbar:false">";
    test();//4970
echo "<br />";
    test();//9920
echo "<br />";
    test();//14870
    
    </code>
Nach dem Login kopieren
Nach dem Login kopieren

Da es nur eine Kopie im Speicher gibt, ist ein erneuter Aufruf wie eine direkte Referenz. Warum wurde also $num zum ersten Mal 20 zugewiesen?
Sollte das Ergebnis des ersten Laufs nicht 4950 sein

$i =1;$i<101

//Ergebnis: 4950;

Es ist verständlich, dass die Zeile mit dem Wert 20 die Zeile mit dem Wert 0 oben überschreibt. Da die Variablennamen gleich sind, beträgt sie bei der Initialisierung 20.

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage