Wie bekommt man ein variable bzw. deren Wert in eine Funktion bzw. class?

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

  • Wie bekommt man ein variable bzw. deren Wert in eine Funktion bzw. class?

    Die Variablen welche außerhalb von den Klassenfunktionen deklariert werden sind in diesen nicht verfügbar. Wie macht man sie verfügbar?

  • #2
    www.gidf.de
    http://tut.php-quake.net/klassen.html

    schau dir einfach mal die oop grundlagen an

    Kommentar


    • #3
      Hat jemand noch einen Tipp worauf man exakt achten muss?

      Kommentar


      • #4
        falls du von klassenvariablen redest:

        PHP-Code:
        $this->eigenschaft 

        Kommentar


        • #5
          klassenvariablen sind static

          im allgemeinen verwendet man in oop sprachen eher selten public attribute
          man kapselt die daten in getter und setter methoden

          PHP-Code:
          class Foo{

          private 
          $_bar null;
          public static 
          $_var 1;

             
          //konstruktor
             
          public function Foo($arg){
                
          $this->setBar($arg);
             } 

             public function 
          getBar(){
                 return 
          $this->_bar;
             }

             public function 
          setBar($arg){
                if(
          $arg != null)
                   
          $this->_bar $arg;
                else
                   throw new 
          Exception("invalid parameter");
             }
          }

          //aufruf einer statisch bzw einer klassenvariable
          echo Foo::$_var

          Kommentar


          • #6
            Original geschrieben von BugBite
            klassenvariablen sind static
            warum sollte das so sein?
            und was möchtes du uns eigentlich mit deinem beispiel zeigen?

            Kommentar


            • #7
              naja was sollte ich schon groß auf die frage "worauf muss ich achten" antworten? darum eben ein kleines beispiel.

              Klassenvariablen sind statische Attribute und damit objektunabhängig.

              Kommentar


              • #8
                Original geschrieben von BugBite
                Klassenvariablen sind statische Attribute und damit objektunabhängig.
                wie kommst du darauf, dass klassenvariablen statisch sein müssen? klassenvariablen können statisch sein, müssen aber nicht.

                im übrigen ist es m.m nach egal, ob man die klassenvariablen, classmember oder klassenattribute nennt.

                Kommentar


                • #9
                  na tut mir leid aber Klassenattribut/variable is im OOP nunmal ein
                  begriff der eine bestimmte bedeutung hat... wenn du alles
                  klassenattribut nennst kommts nur mal zu missverständnissen wie
                  gerade eben.

                  Wie willst du denn variablen in klassen objektunabhängig machen
                  wenn nicht mit static?

                  Kommentar


                  • #10
                    Dann mal ein Beispiel. Die Variable ist außerhalb der Klasse und heißt $vara.
                    PHP-Code:
                               5 $vara "test";

                          
                    class blabla {
                          
                    7     function test()
                          
                    8     {
                          
                    9         $message "Test: $vara\r\n";
                         
                    10         return $message;
                         
                    11     }
                         
                    12 }
                         
                    13 
                         14 $a  
                    = new blabla();
                         
                    15 
                         16 
                    print $a->test(); 
                    Wie bekommt man $vara in die Klasse bzw. deren Werte, um damit innerhalb der Klasse weiter arbeiten zu könen?
                    Zuletzt geändert von janein; 20.04.2008, 20:21.

                    Kommentar


                    • #11
                      Original geschrieben von janein
                      Wie bekommt man $vara in die Klasse bzw. deren Werte, um damit innerhalb der Klasse weiter arbeiten zu könen?
                      So:

                      PHP-Code:
                                 5 $vara "test";

                            
                      class blabla {
                            
                      7     public function test($vara)
                            
                      8     {
                            
                      9         $message "Test: $vara\r\n";
                           
                      10         return $message;
                           
                      11     }
                           
                      12 }
                           
                      13 
                           14 $a  
                      = new blabla();
                           
                      15 
                           16 
                      print $a->test($vara); 

                      Kommentar


                      • #12
                        janein bitte fang nicht an jetzt einfach so mit klassen rumzuspielen,
                        ohne das prinzip dahinter zu verstehen.

                        bevor wir uns jetzt hier im forum durch das ganze thema fressen:
                        mach einfach mal von hinten bis vorne ein oop tutorial, ich glaub peter
                        kropff ist da ne super anlaufstelle

                        zu deinem beispiel:


                        PHP-Code:
                        ...
                        public function 
                        test($arg){
                           
                        $message "Test: $arg\r\n";
                           return 
                        $message;
                        }
                        ...

                        $blabla = new blabla();
                        echo 
                        $blabla->test($vara); 
                        so ne funktion wäre dann aber eh statisch
                        ansonsten kannst du noch variablen über den konstruktor setzen

                        Kommentar


                        • #13
                          Original geschrieben von BugBite

                          so ne funktion wäre dann aber eh statisch
                          Erstens ist es eine Methode und zweits nicht statisch
                          [FONT="Helvetica"]twitter.com/unset[/FONT]

                          Shitstorm Podcast – Wöchentliches Auskotzen

                          Kommentar


                          • #14
                            Original geschrieben von h3ll
                            So:

                            PHP-Code:
                                       5 $vara "test";

                                  
                            class blabla {
                                  
                            7     public function test($vara)
                                  
                            8     {
                                  
                            9         $message "Test: $vara\r\n";
                                 
                            10         return $message;
                                 
                            11     }
                                 
                            12 }
                                 
                            13 
                                 14 $a  
                            = new blabla();
                                 
                            15 
                                 16 
                            print $a->test($vara); 
                            mercy :-)

                            @BugBite
                            Danke für die Warnung. Aber Versuch macht kluch ... und Fehler sind da, um sie zu machen.

                            Kommentar


                            • #15
                              Original geschrieben von unset
                              Erstens ist es eine Methode und zweits nicht statisch
                              Was ist nun statisch und was nicht bzw. wo sind da die Unterschiede in der Handhabung?

                              Kommentar

                              Lädt...
                              X