Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Klassen und Funktionen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Klassen und Funktionen

    Moin moin...
    ich hoffe Ihr seid mir jetzt nicht zu sehr böse, wenn ich jetzt etwas frage, wo sich die Profis entweder vor Lachen auf die Schenkel klopfen oder verständnislos Kopf schütteln.

    Ich bin eben manchmal Begriffsstutzig.

    Folgendes Fall Beispiel

    PHP-Code:
    <?php
    $a 
    10 ;
    $b ;
    $c $a/$b ;
    echo 
    $c ;
    ?>
    ist klar, simple und einfach.
    nun das ganze als Funktion

    PHP-Code:
    <?php
    function teilen ($a$b )  {
      
    $c $a/$b ;
      return 
    $c ;
    }
     
    $a 10 ;
    $b ;
    teilen ($a,$b);
    echo 
    $c ;
    ?>
    auch simple.. zumal man jetzt die Funktion auslagern kann und das "Hauptprogramm" von solchen Berechnungen befreien und übersichtlicher gestalten kann.

    Jetzt wahrscheinlich die Königsdisziplin... Klassendenken.
    Dazu brauche ich eine Klasse.

    PHP-Code:
    <?php
    class test {
      function 
    teilen ($a$b )  {
      
    $c $a/$b ;
      }
    }
    ?>
    Doch halt, da war doch noch was mit Konstruktor...

    Wäre diese Variante richtig ?

    PHP-Code:
    <?php
    class test {
      var 
    $a ;
      Var 
    $b ;
      Var 
    $c ;
     
      function 
    teilen ($a$b )  {
        
    $c $a/$b ;
      }
    }
    ?>
    Okay, aber wie rufe ich nun die Klasse auf und erhalte das Ergebnis ?

    PHP-Code:
    <?php
    require_once('test.php');
     
    $test->teilen (10,5) ;
     
    echo 
    this->$c ;
     
    ?>
    Natürlich habe ich im Internet schon versucht mich einzulesen, aber ehrlich gesagt...
    Warum müssen da immer Fachchinesische Beispiele dabei rauskommen.
    Like das
    PHP-Code:
    class extends 
    Bitte nicht falsch verstehen, Hut ab, vor den Profis, aber erklärende anschauliche Beispiele bringen schaffen die wenigsten.

    Bei aller Theorie.. stellen sich dem Einsteiger viele Fragen.

    Zum Beispiel: Muss der Name der Klasse auch der Dateiname sein.

    Oder was passiert wenn ich mehrere "Funktionen" innerhalb einer Klasse habe, bekomme ich dann widersprüche Aussagen.
    um es an meinem obigen Beispiel zu zeigen was ich meine:

    PHP-Code:
    <?php
    class test {
      var 
    $a ;
      Var 
    $b ;
      Var 
    $c ;
     
      function 
    teilen ($a$b )  {
        
    $c $a/$b ;
      }
     
      function 
    addieren ($a$b )  {
        
    $c $a+$b ;
      }
     
    }
    ?>
    Oder ist lediglich der Aufruf entscheidend und ich kann das Ergebniss in der Gleichen Variable nutzen.

    Hintergedanke diese Fragerei ist, ich habe mehrere Datenbanken und möchte aus diesen Lesen bzw. Daten dort ablegen.
    Warum in verschiedenen Programmteilen immer wieder die gleichen Zeilen hacken, wenn ich das über eine Klasse vielleicht besser realisieren kann.

    Und nochmal, Entschuldigt für meine Begriffsstutzigkeit.

    Gruss, Peter

  • #2
    Du musst da unterscheiden zwischen statischer und erweiterter Logik. Das Teilen ist statisch, da du keine weiteren Parameter oder Folgelogiken hast. Demnach kannst du die Methode "teilen" auch statisch anbieten, d.h. du musst in dem Objekt keine Werte speichern:

    PHP-Code:
    class test {
        function 
    teilen($a$b) {
            return 
    $a $b;
        }
    }

    $c test::teilen(52); // keine Instanz von "test" nötig, statischer Methodenaufruf 

    Kommentar


    • #3
      @Normalo: In dem Fall ist eine Klasse anlegen aber ziehmlich sinnlos

      Kommentar


      • #4
        Zitat von cycap Beitrag anzeigen
        @Normalo: In dem Fall ist eine Klasse anlegen aber ziehmlich sinnlos
        In der OOP bleibt dir nichts anderes übrig. Prozedural will er's ja nicht, soweit ich das interpretiert hab. Das Thema heißt "Klassen und Funktionen", was wohl bedeuten soll "Klassen und Methoden".

        Kommentar


        • #5
          Zitat von Normalo Beitrag anzeigen
          In der OOP bleibt dir nichts anderes übrig. Prozedural will er's ja nicht, soweit ich das interpretiert hab. Das Thema heißt "Klassen und Funktionen", was wohl bedeuten soll "Klassen und Methoden".

          Halt Jungs, Ihr driftet in die falsche Ecke ab...

          PHP-Code:
          class test {
              function 
          teilen($a$b) {
                  return 
          $a $b;
              }
          }
           
          $c test::teilen(52); // keine Instanz von "test" nötig, statischer Methodenaufruf 
          Alles gut und schön... aber hilft mir nicht weiter.
          Ich hab ein Verständnisproblem und es geht weniger um Sinn oder Unsinn.

          Mein Problem... ist:
          Wie baue ich, Anhand eines simplen Beispiels ( 10 / 2) die Klasse richtig auf.
          zweitens, wie spreche ich sie an und wie erhalte ich ein Ergebniss im aufrufenden Programm.

          Wenn ich erstmal das Begriffen habe, können wir über statischer und erweiterter Logik plaudern.

          Ich weiss, das mag befremdlich wirken, aber ich seh den Wald nicht. Nur Bäume...

          Da war doch was mit this->teilen...
          Wenn ich das richtig gelesen habe, holt this->funktion das ergebnis aus der Funktion ?
          Was mache ich wenn ich mehrere Werte an das Aufrufende Programm übergeben möchte...


          Danke schonmal an euch beiden...
          Gruss, Peter

          Kommentar


          • #6
            Ich denke, angesichts der Problematik bist du derjenige, der sich im falschen Forum befindet. Das sind Grundlagen. Find ich arrogant, im Profiforum zu posten. Auch Profis lesen im Anfängerforum.

            Zum Thema: PHP: Klassen und Objekte - Manual

            Kommentar


            • #7
              Zitat von Normalo Beitrag anzeigen
              Ich denke, angesichts der Problematik bist du derjenige, der sich im falschen Forum befindet. Das sind Grundlagen. Find ich arrogant, im Profiforum zu posten. Auch Profis lesen im Anfängerforum.

              Zum Thema: PHP: Klassen und Objekte - Manual
              Entschuldige..
              Ich ging nicht davon aus, das Profis im Anfängerforum lesen.
              Zweitens ist mir klar, das es sich um grunsätzliche Fragen handelt und die wollte ich von einem Profi beantwortet wissen.
              Bevor du das nächste Mal dich hinstellst und über arroganz plapperst, frage dich einmal ob deine Hochnäsigkeit gerechtfertigt ist.
              Peter

              Kommentar


              • #8
                Ich will die mal ein schönes Beispiel schreiben (ich geh mal von PHP5 aus):

                PHP-Code:
                class rechnen
                {

                  var 
                $zahl1,$zahl2;


                  function 
                __construct($a$b)
                  {
                    
                // Kostruktor:
                    // wir brauchen so oder so mindestens 2 zahlen zum Rechnen, also können wir die gleich bei der Objektinstanzierung festlegen
                    
                $this->zahl1 $a;  // hiermit haben wir die beiden zahlen fest im Objekt und können aus allen Methoden darauf zugreifen
                    
                $this->zahl2 $b;
                  }
                  
                  function 
                getSumme() // Parameter brauchen wir nicht, alles was wir brauchen ist im Objekt enthalten
                  
                {
                    return 
                $this->zahl1 $this->zahl2;
                  }

                  function 
                getDiff()
                  {
                    return 
                $this->zahl1 $this->zahl2;
                  }

                Benutzen kannst du das dann so:
                PHP-Code:
                $rech1 = new rechnen(12,10);
                $rech2 = new rechnen(4,3); // Damit haben wir jetzt 2 Objekte mit denen wir unabhängig voneinander arbeiten können

                // Dann wollen wir uns mal ausgeben lassen was rauskommt, die Reihenfolge hierbei ist egal:
                echo "Summe Rechnung1:".$rech1->getSumme()."<br>";  // ist 22
                echo "Differenz Rechnung2:".$rech2->getDiff()."<br>";  // ist 1
                echo "Differenz Rechnung1:".$rech1->getDiff()."<br>"// ist 2
                echo "Summe Rechnung2:".$rech2->getSumme()."<br>"// ist 7 

                Kommentar


                • #9
                  [quote=cycap;12091]Ich will die mal ein schönes Beispiel schreiben (ich geh mal von PHP5 aus):

                  ...

                  quote]

                  Genau so meinte ich das ...
                  Danke !

                  Gruss, Peter

                  Kommentar


                  • #10
                    Zitat von wetteronkel Beitrag anzeigen
                    Ich ging nicht davon aus, das Profis im Anfängerforum lesen.
                    Zweitens ist mir klar, das es sich um grunsätzliche Fragen handelt und die wollte ich von einem Profi beantwortet wissen.
                    Bevor du das nächste Mal dich hinstellst und über arroganz plapperst, frage dich einmal ob deine Hochnäsigkeit gerechtfertigt ist.
                    Bevor du andern Hochnäsigkeit vorwirfst, wenn du das gelesen hättest, wäre auch alles klar gewesen.
                    Gruss
                    L

                    Kommentar


                    • #11
                      Zitat von wetteronkel Beitrag anzeigen
                      Entschuldige..
                      Ich ging nicht davon aus, das Profis im Anfängerforum lesen.
                      Sei verwiesen auf das (insbesondere auf den ersten Absatz): http://www.php.de/php-profis/1337-we....html#post9504
                      Im Übrigen sehe ich einen Unterschied zwischen deinem und meinem Ton.

                      Kommentar


                      • #12
                        -- hat sich erledigt

                        Kommentar

                        Lädt...
                        X