Variable persistent speichern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variable persistent speichern

    Hallo

    habe es Problem bei der Speicherung einer Variablen.

    1. Rufe eine Funktion mehrfach auf.
    Beim ersten Aufruf möchte ich einer Variablen ein Stringwert zuweisen.
    Beim erneuten Aufruf ist dieser Wert nicht mehr da, da ich ihn aber für die weitere VErabreitung benötigte muss ich diesen Wert zwischenspeichern.

    Problem an der ganzen ist, das es sich um eine Klassenmethode handelt und ich nicht weiß was ich jetzt machen sollte.

    Weiß jemand vllt Rat oder hat ein ähnliches Prob

    nic

  • #2
    PHP-Code:
    Beim ersten Aufruf möchte ich einer Variablen ein Stringwert zuweisen.
    Beim erneuten Aufruf ist dieser Wert nicht mehr da 
    Weil er überschrieben wird?

    Vielleicht erklärst du mal wozu du deine Methode benutzt..

    Sowas wie eine Zeitmessung ? Erster aufruf = start nächster aufruf = stop?
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      PHP-Code:
      <?php
        
      function deineFunktion() {
          static 
      $variableDieErhaltenBleibenSoll "WertBeimErstenAufruf";
          
      weitereBefehle();
        }
      ?>
      Hier auch auf php.net: static
      Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

      Kommentar


      • #4
        Vielen Dank für die Antworten

        Es geht um folgendes:

        Ich habe ein WEBDAV-Server mit php (PEAR-Klasse Http_WebDAV_Server)
        Um eine Browsingfunktionalität zu erreichen muss ich dynmanisch abfragen nach dem bisher angeklicken Ordner. Problem ist das mir in dem Moment der übergeordnete Ordner fehlt, So das wenn ich mehrere gleiche Unterordner besitze nun sämtliche Inhalte aller Unterordner angezeigt bekomme.

        Ordner
        -Unterordner_1
        -Unterordner_2
        ....
        Ordner
        -Unterordner_1
        -Unterordner_2

        Beim Anklicken des Unterordner erhalte ich nur den Unterordner per URL. Nicht den gesamten Pfad(leider). Die Methode zur Anzeige wird erneut aufgerufen. Dort war mein Gedanke, die Variable Ordner zwischenzuspeichern nur wie ich das tun soll ist mir unklar. Static kann doch niemals überschrieben werden,oder?

        nic

        Kommentar


        • #5
          Nutz doch einfach eine zweite Klassenvariable?
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Kommentar


          • #6
            Mit der neuen Klassenvariable hab ich versucht, die ist trotzdem immer wieder leer.

            Kommentar


            • #7
              Ist dein Code so geheim?

              Poste mal die Relevanten teile deines Codes.

              (Zumindest die Problem-Methode)
              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Kommentar


              • #8
                Original geschrieben von nic_12
                Static kann doch niemals überschrieben werden,oder?
                Sicher kann es das, du kannst nur die Variable nicht nochmal neu deklarieren... d.h. was du hinter static schreibst, wird nur beim ersten funktionsaufruf ausgeführt, und danach nichtmehr, danach kannst du normale Variablenzuweisungen benutzen. Hastes denn einfach mal Probiert mit static?
                Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                Kommentar


                • #9
                  PHP-Code:
                  function staticprobe(){
                    static 
                  $var=1;
                    return 
                  $var++;
                  }
                  for (
                  $i=0;$i<10;$i++) echo staticprobe()."\n<br />"
                  Slava
                  bituniverse.com

                  Kommentar

                  Lädt...
                  X