Heim  >  Artikel  >  Backend-Entwicklung  >  Rekursion auf einer statischen Variablen

Rekursion auf einer statischen Variablen

WBOY
WBOYOriginal
2016-09-08 08:44:091828Durchsuche

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

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

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>

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

Stellungnahme:
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