Rekursion auf einer statischen Variablen

WBOY
Freigeben: 2016-09-08 08:44:09
Original
1829 Leute haben es durchsucht

<code class="php"><?php
function test()
{
    static $count = 0;

    echo $count++;
    if ($count < 10) {
        test();
    }
    echo $count--;
}
?></code>
Nach dem Login kopieren
Nach dem Login kopieren

Ergebnis: 012345678910987654321
Das echo $cont in der ersten Hälfte, ich kann verstehen, warum echo $count – es beginnt bei 10. Von oben nach unten drücken, --versetzt es sich nicht?

Antwortinhalt:

<code class="php"><?php
function test()
{
    static $count = 0;

    echo $count++;
    if ($count < 10) {
        test();
    }
    echo $count--;
}
?></code>
Nach dem Login kopieren
Nach dem Login kopieren

Ergebnis: 012345678910987654321
Das echo $cont in der ersten Hälfte, ich kann verstehen, warum echo $count – es beginnt bei 10. Von oben nach unten drücken, ist das kein Ausgleich?

Dies ist die Ein- und Ausstiegssequenz des Stapels

Wenn eine Funktion innerhalb aufgerufen wird, kann Folgendes nicht ausgeführt werden, bis der Funktionsaufruf count>10 abgeschlossen ist.

Die ersten 10 Rekursionen werden nicht ausgeführt

, da der rekursive Aufruf noch nicht beendet ist. Bis echo $count--; wird die Rekursion nicht mehr durchgeführt, sodass die rekursiven Operationen Schicht für Schicht abgeschlossen werden$count == 10

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