Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte
hier. Zur Startseite kommen Sie
hier.
static-variable ausserhalb der funktion "löschen"?
Hallo,
ich habe eine static-Variable in einer Funktion.
Diese Funktion wird an verschiedenen meines scripts auferufen. Jedoch möchte ich die static-Variable ausserhalb der Funktion zurücksetzen/löschen.
Ist das möglich?
Antworten
Nein.
2.
Hm schade, danke für die Info.
Ich versuche es gerade auf ein paar Umwegen.
Hier die Funktion:
function myCallback2($item2)
{
global $staticvar;
static $y;
if ($staticvar == "reset")
{
$staticvar = "done";
$y = 0;
}
return $item2[0] . ++$y;
}
und hier ein teil des codes, bevor die funktion zum 2. mal ausgeführt wird:
$staticvar = "reset";
$bereichhtml[html] = preg_replace_callback("/inhalt/", 'myCallback2' , $bereichhtml[html]);
Das funktioniert soweit auch, nur nachdem die $staticvar auf "reset" gesetzt wurde, setzt er $y in der Variable immer auf 0, also $staticvar ="done" wird anscheinend nicht ausgeführt.
Hat jemand eine Idee?
3.
Hä??
Also erstens ist das ein *grauenhaftes* Coding, zweitens verstehe ich Dein "immer auf 0" ganz und gar nicht, im obigen Code wird myCallback2 exakt ein einziges Mal aufgerufen (durch den *einzigen* Aufruf von preg_replace_callback) und in diesem einen einzige Aufruf wird *natürlich* $y auf 0 gesetzt, weil Du vorherh $staticvar auf "reset" gestetzt hast.
Nichts überraschendes und nichts unvorhersehbares!
4.
preg_replace_callback wird in einer while-schleife aufgerufen, und wird daher dann öfters ausgeführt.
PS: sorry für das grauenhafte coding
5.
Ah, hab den Fehler gefunden.... sorry!
danke für die Hilfe.