statische variablen

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

  • statische variablen

    laut sebastian bergmann und dem php-handbuch bewegen sich statische variablen außerhalb des objektkontextes
    sebastian bergmann
    Die Änderung des Inhalts einer solchen Variablen in einem Objekt ändert den Inhalt in allen Objekten der zugehörigen Klasse. Der Zugriff auf eine Klassenvariable erfolgt über Klassenname::$variable.
    wenn ich aber nun eine statische variable als protected anstatt public festlege, so stimmen obige aussagen nicht mehr
    PHP-Code:
    class blubber
    {
        protected static 
    $bla;
        public function 
    setBla ($wert)
        {
            
    self::$bla $wert;
        }
        public function 
    returnBla()
        {
            return 
    self::$bla;
        }
    }

    $blubb = new blubber;
    $blubb -> setBla('jau');
    $blubb_ok $blubb -> returnBla();

    $laber = new blubber;
    $laber -> setBla('nee');
    $laber_ok $laber -> returnBla();

    // Gibt erst 'jau' dann 'nee' aus
    echo $blubb_ok.'<br>'.$laber_ok.'<br>';

    // Fehlermeldung
    $bla blubber::$bock;
    echo 
    $bla
    habe ich da was falsch verstanden, oder sind statische variablen nicht mehr statisch, wenn man sie als protected deklariert?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

  • #2
    Du gibst ja nicht den Inhalt des statischen Attributs aus, sondern den Inhalt der Variablen $buibb_ok und $laber_ok,

    $blubb_ok setzt du, bevor du den Wert des statischen Attributs änderst.

    schreib's mal um
    PHP-Code:
    $blubb_ok $blubb -> returnBla();
    class 
    blubber
    {
        protected static 
    $bla;
        public function 
    setBla ($wert)
        {
            
    self::$bla $wert;
        }
        public function 
    returnBla()
        {
            return 
    self::$bla;
        }
    }

    $blubb = new blubber;
    $blubb -> setBla('jau');

    $laber = new blubber;
    $laber -> setBla('nee');
    $laber_ok $laber -> returnBla();
    $blubb_ok $blubb -> returnBla();

    echo 
    $blubb_ok.'<br>'.$laber_ok.'<br>'
    OffTopic:
    Ich dachte, es heißt Attribut und nicht Variable
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      was sagt denn die fehlermeldung?

      schau unter http://de.php.net/manual/en/language...visibility.php
      Public declared items can be accessed everywhere. Protected limits access to inherited and parent classes (and to the class that defines the item). Private limits visibility only to the class that defines the item.
      also ist protected von außen nicht sichtbar.

      Kommentar


      • #4
        schreib's mal um

        ich torfkopp, bin noch eine bißchen benebelt vom handballkrimi
        was sagt denn die fehlermeldung?
        jetzt ist alles klar. danke euch beiden.
        Ich dachte, es heißt Attribut und nicht Variable
        oder eigenschaft, oder klassenvariable oder statischer member. da macht jeder was er will

        gruß
        peter
        Zuletzt geändert von Kropff; 01.02.2007, 21:12.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          I live to please


          Torfkopp ist übrigens ein netter Ausdruck...
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Original geschrieben von mrhappiness
            Torfkopp ist übrigens ein netter Ausdruck...
            OffTopic:
            nee ist er nicht.aber sehr aussagekräftig

            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              I live to please


              Torfkopp ist übrigens ein netter Ausdruck...
              wo bleibt schmale mit seinem Usertitel-Verpassen

              Kommentar

              Lädt...
              X