OOP rechnen

  • Hey,


    ich habe mit OOP jetzt begonnen. Ist etwas kompliziert, und ich bekomm da irgendwie diese Rechnung nicht hin. Ich möchte die anzahl (10) +1 nehmen und dies dann der var ergebnis übergeben.


    Mein momentaner Aufbau:



    Dabei gibt der Browser mit immer den Fehler aus :
    Parse error
    : syntax error, unexpected '=' in E:\Web\XAMPP\htdocs\OOP\grundlagen.php on line 23


    Warum denn dass ? Ich versteh auch nicht warum es nicht rechnet... OOP erscheint mir etwas kompliziert.


    Weitere Frage:


    zu dem hier: protected $neueHunde;
    Hier habe ich ja die eigenschaft neue hunde als geschützt gesetzt.
    Ist die methode dafür auch geschützt oder weil ich public gesetzt habe frei zugänglich ?



    Freue mich auf eure Hilfe.


    Gruß,
    Stef

  • Die Fehlermeldung sagt es doch: das "=" ist unerwartet.


    PHP
    $this->neueHunde + 1 = $ergebnis;
    // sollte sicher das hier sein:
    $this->neueHunde = $ergebnis + 1;


    Da ist min noch ein Fehler:

    PHP
    public function neueHunde($anzahl = 10, $ergebnis )


    1. optionale Parameter sollten immer NACH nicht optionalen Parametern kommen.
    2. Du gibts kein Wert für $ergebnis rein (Zeile 41)


    BTW: würde empfehlen im Code alles Englisch zu halten. Kommentare wie Variablen und Funktionen ect.
    Ich meine, wenn Du schon mit OOP anfängst, kann man sich gleich an "andere Sachen" gewöhnen =).


    Hast Du hier schon mal reingesehen: http://www.php-kurs.com/objekt…programmierung-in-php.htm


    Zu protected:
    Die Property (Eigenschaft) $neueHunde ist protected. Nicht die Methode.



    Hier mal ein Bsp am Hund:
    // -Kommentare sind natürlich nur zur Erklärung


    Bei mehreren Tieren (Animals) würde man dann eine Class Animals erstellen, die eine Sammlung (collection) von Tieren hält.
    Aber das evtl später.


    Schön, das Du OOP nutzen möchstest. Macht sehr viel Spass und Sinn.
    Es sieht zwar viel aus, kommt aber nach und nach - irgendwann ist das alles logisch :)

  • Hey,


    warum ist es da unerwartet? Versteh ich nicht..


    Ich wollte die rechnung aus $this->neueHunde + 1 in $ergebnis speichern.
    Habe es dann geändert in :

    PHP
    $ergebnis = $this->neueHunde + 1;

    . Und es klappt auch.


    Wenn ich z.b. jetzt ein Rechner habe der nur + rechnen kann mit benutzereingabe kann es so dann aussehen ?


    Könnte man bei dieser function auch mittels return es ausgeben ?


    Ok. Ja , hab ich, etwas veraltet manches. Schau mit dazu das PHP-Handbuch an (lerne aus dem). Dabei ´lernt man dann wieder etwas englisch :D


    Danke fürs beispiel.


    Wenn man die eigenschaften auf protected setzt dann sind die functionen in welche diese aufgerufen werden sozusagen nur mit set oder get ausführbar sonst kommt ein error ?
    Wenn ich jetzt z.b. ein datenbankzugriff da habe denn muss ich ja auf private/protected setzen. Dies kann man dann mittels set oder get ausführen ?


    Ja am anfang, als ichs mir das erste mal angeschaun habe hab ich nicht viel kappiert. Aber langsam versteh ich es.


    Gruß, Stef

  • Dein

    PHP
    $this->neueHunde + 1 = $ergebnis;


    Ist halt eben nicht korrekt.
    Was Du geschrieben hattest, ist "spiegelverkehrt".

    PHP
    / FALSCH
    // $this->neueHunde + 1 = $ergebnis;
    // $a + 1 = $b;
    
    
    
    
    // RICHTIG
    $ergebnis = $this->neueHunde + 1;;
    $b = $a + 1;


    :)


    Dein calc Bsp macht irgendwie keinen Sinn :D
    Du nutzt 2 Parameter ($zahl1 und $zahl2), nutzt diese aber nicht,
    sondern überschreibst sie mit $_POST-Daten.


    Ich denke Du musst Dir nochmal Funktionen ansehen.



    am Bsp - einfache Funktion - zwei Zahlen zusammen zählen.
    Die Werte kommen über $_POST:

  • Hi,


    ja hab es auch gemerkt. :D


    Aso. Habe mit functionen lange nix mehr gemacht. Muss ich mir nochmal anschauen.


    Ich brauche doch 2 Zahlen die muss ich doch als parameter mitgeben ? Und dann habe ich gedacht das diese 2 Zahlen die value besitzen sollen von der Benutzereingabe. Daher habe ich das so gemacht. Mein Fehler. Aber irgendwie mach ich das was ich so nicht machen würde bei oop.. keine ahnung warum..


    Ok. Dann würde bei oop die 2 values in die public variable abgelegt und dann wird diese returnt. Und dann außerhalb auf diese public variable zugreifen und die Parameter geben welche diese berechnen soll?


    Stef

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!