Ankündigung

Einklappen
Keine Ankündigung bisher.

Deklaration statischer Properties

Einklappen

Neue Werbung 2019

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

  • Deklaration statischer Properties

    Hallo,

    wie deklariere ich denn statische Properties in einer Klasse?

    Pseudo:
    PHP-Code:
    <?php
    class foo
    {
      static 
    $arr = array(1,2,3);
    }

    foo::$arr[0];
    ?>
    Ich möchte statische Variablen nicht innerhalb von Methoden festlegen, sondern eben Klassenweit.

  • #2
    PHP-Code:
    <?php

     
     
    class Demo {
     
         public static 
    $demo = array(1,2,3);
     
     }
     
     
     echo 
    Demo::$demo[0];
     
    ?>
    [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

    Kommentar


    • #3
      Im Manual wärst du auch fündig geworden
      http://www.php.net/manual/en/language.oop5.static.php

      Kommentar


      • #4
        Ach äh hab das wichtigste vergessen: Es geht um PHP 4.

        Kommentar


        • #5
          In PHP 4 ist das garnicht möglich :P

          Kommentar


          • #6
            Mist ich habs mir gedacht. Danke trotzdem!

            Kommentar


            • #7
              Aber auch in PHP 4 kannst du auf Eigenschaften und Methoden zugreifen, ohne eine Instanz der Klasse zu erzeugen (via ::), es gibt nur keine Zugriffsspezifizierer.

              Kommentar


              • #8
                Hier werden statische Variablen u.a. in Funktionen behandelt. Lässt sich das Ganze nicht auch auf Klassen übertragen?

                Kommentar


                • #9
                  Zitat von Corvin Gröning
                  Aber auch in PHP 4 kannst du auf Eigenschaften und Methoden zugreifen, ohne eine Instanz der Klasse zu erzeugen (via ::), es gibt nur keine Zugriffsspezifizierer.
                  statische Eigenschaften und Mehtoden sollten aber mit PHP4 genauso gehen wie mit PHP5
                  Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                  Kommentar


                  • #10
                    Methoden ja, statische Eigenschaften von Klassen gibts erst ab PHP 5.
                    mod = master of disaster

                    Kommentar


                    • #11
                      Also nochmal abschließend: In PHP4-Klassen gibt es keine statischen Eigenschaften? Was wäre eine Ersatz-Technik? Eine globale Variable (ich brauche eigentlich einen statischen Array, Konstanten kommen deshalb nicht in Frage) finde ich sehr unschön.

                      Kommentar


                      • #12
                        Aus dem Manual:

                        Die Zend Engine 1, die PHP 4 zugrunde liegt, führt die static- und global-Wandler für Variablen in Bezug auf Referenzen aus.
                        Demnach funktionieren statische auch unter PHP4 würde mich schwer wundern wenn dem nicht so wäre.
                        Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                        Kommentar


                        • #13
                          Ich meine jetzt aber NICHT

                          PHP-Code:
                          <?php
                          class foo
                          {
                            function 
                          bar()
                            {
                              static 
                          $barVar = array('one','two');
                            }
                          }
                          // sondern
                          class foo
                          {
                            static 
                          $fooVar = array('one','two');
                            function 
                          bar()
                            {
                            }
                          }
                          // damit folgender Zugriff möglich ist:
                          foo::bar()
                          foo::fooVar;
                          // oder sowieso eher
                          foo::$fooVar;
                          //?
                          ?>
                          Das ist doch NICHT mit PHP4 möglich? Oder wer kann mir ein funktionierendes Beispiel nennen?

                          Kommentar

                          Lädt...
                          X