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];
     
    ?>

    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

                  Kommentar


                  • #10
                    Methoden ja, statische Eigenschaften von Klassen gibts erst ab PHP 5.

                    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.

                        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