Statische Klassenvariabeln

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

  • Statische Klassenvariabeln

    Hi @all,

    ich schreibe gerade einen Webshop. Dabei habe ich das Problem, dass bestimmte Klassnvariabeln nicht geändert werden dürfen. Ich hab versucht die Variablen mit 'static $var' zu definieren. Das funktioniert aber nicht.

    Kann mir jemand sagen, wie ich es schaffe ohne die Definition einer Konstante einen nicht veränderbare Klassenvariable zuerstellen?

    THX
    Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

    um so schlimmer für die Tatsachen.

  • #2
    in php4 nur mit konstansten.

    aber du kannst deine class auch so anpassen, dass sie eine solche var gar nicht erst ändert.

    und wenn du so eine class-var von ausserhalb der classe ändern solltest, hast du das prinzip von klassen verfehlt.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      das Problem ist nicht meine Person, das Problem ist die Möglichkeit. Der Shop läuft in einem Portal mit mehreren anderen Unterrubriken, die jemand anders schreibt. Ich will jetzt einfach vermeiden, dass jemand in meinen Klassen beliebig Variabeln ändern kann!
      Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

      um so schlimmer für die Tatsachen.

      Kommentar


      • #4
        du brauchst im doch nur zu sagen, welche methoden er aufrufen darf/soll.

        und wenn ein anderer geziehlt classen-variablen von aussen verändern will, hat eben jenerwelche das prinzip von klassen verfehlt.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          warum macht ihr nicht in den variablen vor gruppen?

          z.B. $bla1_xxxx (der eine Programmierer)
          $bla2_xxxx (der andere Programmierer)

          Kommentar


          • #6
            gut in diesem Fall, werd ich mir irgendwas einfallen lassen müssen.
            Zuletzt geändert von Winner; 06.12.2003, 12:07.
            Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

            um so schlimmer für die Tatsachen.

            Kommentar


            • #7
              wenn du mit konstanten arbeitest, warum sollten dann die leute, denen du nicht vertraus, nicht einfach die konstanten ändern?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                du hast mein Problem verstanden
                Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

                um so schlimmer für die Tatsachen.

                Kommentar


                • #9
                  Hey,

                  wie Abraxax schon sagte, solltest Du/bzw. jeder der Klasen verwendet/schreibt, die Kapselung auch einhalten. Sprich Membervariablen dürfen nur über Methoden set/get angesprochen werden. Für diese eine Variable setzt Du dann eben keine set-Methode, bzw. eine mit einem leerem Körper. Wär mein Vorschlag!

                  Sobald PHP 5 freigegeben ist und Du dieses auch nutzen möchtest, hast Du nur einen min. Mehraufwand um Deine Klassen/API umzuschreiben. Dann steht Dir mittels const/private zwei weitere Möglichkeiten zur Verfügung(die Du auch nutzen solltest) um Deine Klassen eleganter zu programmieren.

                  Gruss curbain

                  Kommentar


                  • #10
                    Original geschrieben von curbain
                    Für diese eine Variable setzt Du dann eben keine set-Methode, bzw. eine mit einem leerem Körper. Wär mein Vorschlag!
                    dann hast du das prinzip von klassen auch verfehlt.

                    mit set() und get() ist das optimal und eigentlich auch nur so richtig.

                    und wenn bestimmte internen classen.vars nicht geändert werden dürfen, so kann man dies bei set() abprüfen/abfangen.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X