Einsteigerfragen

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

  • Einsteigerfragen

    Hallo Forummitglieder!

    Ich habe mich entschlossen diesem Forum aktiv beizutreten. Da es meinem anschein nach eine rege Beteiligung hat !!

    Stellt euch vor, ihr habe ein Loginsystem, wo alle nötigen einstellungen in einer extra config.inc.php gemacht werden. Wie kann ich das ganze denn per OOP regeln?

    Wenn die Konfig eine Klasse ist mit den variablen und das Login eine andere Klasse ist, wie ist es denn möglich auf die variablen aus der config zuzugreifen?
    Soll ich die Config als interface machen und der Loginklasse übergeben?
    Ach wo ich grad beim Fragen bin (ist zwar schon öfters gefragt worden, aber vielleicht weiß ja jemand einen netten link, bei dem ich es auch verstehen kann), wie ist das denn mit den variablen als public static... wann benutz ich welche?

    Vielen dank schon mal für hilfreiche Antworten!!

    greatz

    kelle_fl

  • #2
    Erstmal welcome on board!

    Eine Config Klasse? Eine Login Klasse? mal im Ernst, sowas braucht kein Mensch. Man legt sich eine Configdatei mit Variablen oder arrays an. Dann bastelt man sich eine Steuerklasse, welche die Methode login() enthält. Alles andere ist Overkill ...
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      danke für die antwort!

      Mir geht es halt nur ums prinziep!
      Werde schon nicht so eine Login Klasse erstellen

      Ist es möglich von einer Klasse auf die Variablen einer anderen Klasse zuzugreifen?

      Und hat jemand ein Beispiel oder einen Link für Static, private... Variablen? Versteh ich nämlich net wann ich die nehmen soll..

      Kommentar


      • #4
        Ist es möglich von einer Klasse auf die Variablen einer anderen Klasse zuzugreifen?
        Natürlich, musst aber vorher global verwenden


        Und hat jemand ein Beispiel oder einen Link für Static, private... Variablen? Versteh ich nämlich net wann ich die nehmen soll..

        Die "Schlüsselwörter" funktionieren nur bei PHP5

        -> http://php3.de/manual/de/language.oop5.static.php

        Das is jetz nur für static... schau dich am besten auf der php.net - Seite noch ein bisschen um

        lg

        Kommentar


        • #5
          Oki danke, da ist mir schon mal viel geholfen!

          Kann man dann einfach sagen,

          global ist Klassenübergreifend
          static nur die eine Klasse...

          Kann das mal jemand vervollständigen mit den vier typen?


          Danke!!

          Kommentar


          • #6
            Original geschrieben von kelle_fl
            Oki danke, da ist mir schon mal viel geholfen!

            Kann man dann einfach sagen,

            global ist Klassenübergreifend
            static nur die eine Klasse...

            Kann das mal jemand vervollständigen mit den vier typen?


            Danke!!

            global ist eigentlich dafür gut, dass du eine Variable in Funktionen verwenden kannst

            Zu den typen kann ich dir leider wenig sagen, weil ich die nich benutz... hab php4


            lg

            Kommentar


            • #7
              Original geschrieben von fox34
              Natürlich, musst aber vorher global verwenden
              Stimmt so nicht ganz.
              Du kannst auch der Klasse eine Referenz auf die Klasse, in der die Variable drinsteht, übergeben.
              Ist imho die bessere Lösung.
              Global sollte man nicht alzu oft einsetzen.

              Hier kurz zu den schlüsselwörtern:

              private:
              Attribute und Methoden, die nur von der Klasse/bzw. der Instanz der Klasse benutzt werden können.

              public:
              Attribute und Methoden, die auch von ausserhalb der Klasse benutzt werden können.

              Dann gibt es noch protected, was aber imho nicht von großer Bedeutung ist.
              Static hat so gesehn nichts im OO zu tun, das gabs schon vorher.
              statict werden Variablen, etc. deklariert, die nicht nach dem Abarbeiten einer Funktion oder einer Methode immernoch zur verfügung stehen.

              Hab ich noch was vergessen?
              Naja auf PHP.net müsste noch mehr stehen...

              Kommentar


              • #8
                Original geschrieben von flyx
                Dann gibt es noch protected, was aber imho nicht von großer Bedeutung ist.
                wenn du auf Vererbung verzichtest...
                public mach ein Attribut von außen private, aber jede abgeleitete Klasse kann noch auf die Eigenschaft zugreifen, was bei private nicht möglich wäre
                PHP-Code:
                class test {
                 private 
                $test;
                }
                class 
                test2 extends test {
                 public function 
                grins() {
                  
                $this->test 'test';
                 }

                geht nicht, mit public würde es hingegen funktionieren

                Static hat so gesehn nichts im OO zu tun, das gabs schon vorher.
                statict werden Variablen, etc. deklariert, die nicht nach dem Abarbeiten einer Funktion oder einer Methode immernoch zur verfügung stehen.
                man kann aber auch Variablen innerhalb einer Klasse static machen, das ging vorher nicht!
                PHP-Code:
                class test {
                 static 
                $test 'test';


                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Schön, so langsam kommt bei mir Licht ins dunkeln, was es mit global, static, public und co zu tun hat...

                  Danke Ghostgambler für die anschaulichen Beispiele!!!

                  Kommentar


                  • #10
                    static, das für "statisch" steht, bedeutet bei eigenschaften einer klasse, dass diese eigenschaft einen festen wert hat und dieser nicht geändert bzw. überschrieben wird wenn man die klasse benutzt...

                    außerdem kann man auf eine solche eigenschaft zugreifen, ohne dass man ein objekt der klasse instanziieren muss...

                    also fällt das weg:
                    $klasse = new Klasse();
                    $klasse->eigenschaft;

                    statische eigenschaften kann man einfach so aufrufen:
                    Klasse::eigenschaft;

                    Kommentar

                    Lädt...
                    X