Ankündigung

Einklappen
Keine Ankündigung bisher.

statische Variablen => References

Einklappen

Neue Werbung 2019

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

  • statische Variablen => References

    Hallo,

    ich arbeite gerade an meinem Maturaprojekt und habe erst gestern festgestellt, dass ich PHP5 statt PHP4 zur Entwicklung verwendet habe. Da mein Webspace auch PHP4 verwendet, war die �berraschung nat�rlich Perfekt. Das Problem liegt an den References, ansonsten ist eigentlich alles PHP4 konform! Jezt versuche ich gerade ein Workaround f�r dieses Problem zu finden und habe folgenden Code versucht:

    Code:
    class session
    {
    
          var container;
    
          function session ()
          {
                $this -> container = session_ctn::signalton();
          }
    
          function &signalton ()
          {
                static $class;
                if (!isset($class)) { $class = new g_session; }
                return $class;
          }
    
    
    }
    
    class session_ctn
    {
    
    
          var lib;
          var $class;
    
          function session_ctn ()
          {
                $this -> lib= session::signalton();
          }
    
          function &signalton ()
          {
                static $class;
                if (!isset($class)) { $class = new session_ctn; }
                return $class;
          }
    
    }
    
    $session = session::signalton();
    Beim Ausf�hren schmiert allerdings jedesmal der eigene Webserver ab. Wer weiss, wo das Problem liegt?


    Danke
    gersti

  • #2
    das riecht nach dem singleton pattern. google mal nach php4 und singelton.
    Irgendwie hatte php4 keine statischen Variablen. ausserdem was macht die klasse g_session von der du instantiierst. Wahrscheinlich liegt da das Problem. Fehlen nicht auch schliessende Klammern? [$class = new g_session();]
    --
    kostenlose geschenklisten unter www.wunli.de

    Kommentar


    • #3
      Doch, auch php4 kennt "static"
      Aber Objekte werden dort by value anstatt by reference übergeben/zugewiesen. Bei php5 dann by reference.

      Versuche es mal (ohne Gewähr) mit $session = &session::signalton();
      übrigens: var $container; und var $lib;

      Kommentar


      • #4
        Zitat von Bruchpilot
        Doch, auch php4 kennt "static"
        Nein. Es gibt zwar (implizit) statische Methoden, statische Variablen gibts nicht direkt.
        mod = master of disaster

        Kommentar


        • #5
          Aus der php4 Doku, http://www.php.net/manual/de/languag...bles.scope.php
          Die Verwendung von statischen Variablen

          Ein weiterer wichtiger Anwendungszweck von Variablen-Bereichen ist die static-Variable. Eine statische Variable existiert nur in einem lokalen Funktions-Bereich, der Wert geht beim Verlassen dieses Bereichs aber nicht verloren. Schauen Sie das folgende Beispiel an:
          Wieviel direkter muss es noch sein?

          Kommentar


          • #6
            Zitat von Bruchpilot
            Wieviel direkter muss es noch sein?
            Ich hätte man den Thread lesen sollen. Ich war grad bei static member Variablen, also denen hier:
            http://de2.php.net/manual/en/language.oop5.static.php
            mod = master of disaster

            Kommentar

            Lädt...
            X