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?

Hier gehts zum Orginal Eintrag "static-variable ausserhalb der funktion "löschen"?" im Forum

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.


Hier gehts zum Orginal Eintrag "static-variable ausserhalb der funktion "löschen"?" im Forum
 
phpforum.de | Impressum | Handy Bundles