Wie löschst du eine statische variable in PHP nachdem die Rekursion fertig ist?

Also ich habe zum Beispiel eine statische variable innerhalb einer rekursiven Funktion, und ich möchte, dass die variable statisch zu sein, der durch jeden Aufruf der Rekursion, aber nachdem die Rekursion abgeschlossen ist, möchte ich, dass Variablen werden zurückgesetzt, so dass das nächste mal ich verwende die rekursive Funktion es fängt von vorne an.

Zum Beispiel haben wir eine Funktion:

<?php
function someFunction() {
    static $variable = null;
    do stuff; change value of $variable; do stuff;
    someFunction(); # The value of $variable persists through the recursion.
    return ($variable);
}
?>

Nennen wir die Funktion zum ersten mal wie diese: someFunction(); und es funktioniert gut. Dann nennen wir es wieder: someFunction(); aber dieses mal beginnt es mit dem vorherigen Wert für $variable. Wie können wir es zurücksetzen, nachdem die Rekursion das erste mal, dass wir die Funktion aufgerufen, so dass die zweite mal, dass wir es nennen, es ist wie das starten über frisch?

  • Ich bin nicht sicher, ob ich Ihre Frage verstehe, aber wenn Sie nicht wollen, dass der Variablen Wert zu bestehen, obwohl die Rekursion dann einfach entfernen Sie die statische.
  • Ich will es fortbestehen durch Rekursion... ich will nicht, dass es beibehalten, wenn ich rufen Sie die Funktion manuell, indem Sie es in den Quellcode.
  • Dies ist der Grund, warum wir nicht die Verwendung von statischen Variablen für die Rekursion.
  • Vielen Dank an alle, die antworteten! Die sind alle schön, aber anders, Arten, die gleiche Sache zu tun. 😉
InformationsquelleAutor trusktr | 2011-04-28
Schreibe einen Kommentar