Klassenvariablen ohne $this->??

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

  • Klassenvariablen ohne $this->??

    Hallo!
    Ich dachte, wenn ich innerhalb einer Klasse eine Variable erstelle, dass ich darauf immer mit $this->variablenname zugreifen muss. Jetzt ist mir allerdings aufgefallen, dass ich die variablen ganz normal, also mit $variablenname ansprechen muss, ansonsten funktioniert es nicht. Ist das $this-> in php5 nicht mehr notwendig?

  • #2
    Re: Klassenvariablen ohne $this->??

    Nicht nachvollziehbar, wo von du sprichst.

    Redest du vielleicht von lokalen Variablen in Klassenmethoden ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ich definiere mir in einer class eine methode z.B.:
      PHP-Code:
      class xyz
      {
            function 
      irgendwas()
           {
           
      $datensatz "test";

           echo 
      $this->datensatz#<-funtioniert nicht
           
      echo $datensatz#<- funktioniert
           
      }
      }
      $x = new xyz();
      $x->irgendwas(); 

      Kommentar


      • #4
        PHP-Code:
        $datensatz "test";

             echo 
        $this->datensatz#<-funtioniert nicht 
        Wie soll das auch funktionieren wenn du die var nicht setzt??

        Kommentar


        • #5
          ab php5 brauch ich doch kein var mehr, oder?

          Die variablen sind doch standardmäßig auf "public".

          Kommentar


          • #6
            Original geschrieben von nobody2
            Ich definiere mir in einer class eine methode z.B.:
            PHP-Code:
            class xyz
            {
                  function 
            irgendwas()
                 {
                 
            $datensatz "test";

                 echo 
            $this->datensatz#<-funtioniert nicht
                 
            echo $datensatz#<- funktioniert
                 
            }

            Ja, also ist $datensatz eine lokale Variable innerhalb der Methode irgendwas - warum sollte man darauf unterhalb von $this zugreifen können?

            ab php5 brauch ich doch kein var mehr, oder?

            Die variablen sind doch standardmäßig auf "public".
            Wenn du Klassenvariablen nutzen willst, musst du diese selbstverständlich deklarieren - als public, protected oder private.

            Nur wenn du noch das alte var-Schlüsselwort aus PHP 4 dafür nimmst, wird aus Kompabilitätsgründen public dafür angenommen.
            Und unter E_STRICT gibt selbst das eine Warnung.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Die Variable $datensatz in deinem Beispiel ist ne lokale Variable die nur in der Methode gilt.

              $this->datensatz ist ne Klassenvariable. Das sind zwei paar Schuhe.

              Kommentar


              • #8
                PHP-Code:
                      function irgendwas()
                     {
                     
                $datensatz "test";

                     echo 
                $this->datensatz#<-funtioniert nicht
                     
                echo $datensatz#<- funktioniert
                     

                Das ist doch das ganz normale verhalten. die erste wäre(!) klassenweit vorhanden, wenn sie definiert worden wäre. die letzte nur in der klassenmethode. Works as designed.

                Kommentar


                • #9
                  Achso... sind meine ersten Schritte mit Klassen.... jetzt hab ichs verstanden. Danke!

                  Kommentar

                  Lädt...
                  X