Funktion die Werte addiert (Klassen und Objekte)

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

  • Funktion die Werte addiert (Klassen und Objekte)

    Hallo ihr Lieben, ich brauche Hilfe in einer Aufgabe, bei der ich seit Tagen vergeblich eine Lösung finde.

    Ich habe die Klasse shop:

    class Shop{

    private $gesamtPreis = 0; //Der Gesamtpreis des Einkaufs
    (...)

    [COLOR="DarkOrchid"]function fuegeWarehinzu($preisWare){
    echo "Preis: ".$preisWare. " Euro ";
    }
    [/COLOR]
    function getGesamtpreis(){
    return $this->gesamtPreis;
    }

    }
    ?>

    und das Objekt dazu:

    require_once('./src/Shop.php');
    (...)
    $shop = new Shop ("Hanans Store");

    echo "<u>Kaufe:</u> ".$shop->fuegeWarehinzu(1.99)."<br>";
    echo "<u>Kaufe:</u> ".$shop->fuegeWarehinzu(4.68)."<br>";
    echo "<u>Kaufe:</u> ".$shop->fuegeWarehinzu(2.72)."<br>";
    echo "<u>Kaufe:</u> ".$shop->fuegeWarehinzu(1.12)."<br>";
    echo "<u>Kaufe:</u> ".$shop->fuegeWarehinzu(2.77)."<br>";
    echo "<u>Kaufe:</u> ".$shop->fuegeWarehinzu(1.44)."<br>";
    echo "<u>Kaufe:</u> ".$shop->fuegeWarehinzu(1.30)."<br>";
    echo "<u>Kaufe:</u> ".$shop->fuegeWarehinzu(1.19)."<br>";

    echo "<br><b><u>Gesamtpreis: ".$shop->getGesamtpreis()."</u></b><br>";

    ?>


    Die markierte Funktion in der Klasse shop soll nun alle Werte addieren und das Ergebnis soll im $gesamtPreis ausgegeben werden. Ich habe da an eine for bzw while-Schleife gedacht, kriege es aber leider nicht hin.

    Das ganze sieht in der Ausgabe bisher so aus:
    Preis: 1.99 Euro Kaufe:
    Preis: 4.68 Euro Kaufe:
    Preis: 2.72 Euro Kaufe:
    Preis: 1.12 Euro Kaufe:
    Preis: 2.77 Euro Kaufe:
    Preis: 1.44 Euro Kaufe:
    Preis: 1.3 Euro Kaufe:
    Preis: 1.19 Euro Kaufe:

    Gesamtpreis: 0

    Eine weitere Frage am Rand; wie kriege ich das Wort Kaufe: an den Anfang, sprich vor Preis?

    Ich wäre bei hilfreichen Antworten sehr sehr dankbar.

    LG

  • #2
    Eine Klasse sollte keine Ausgaben mit echo machen.

    PHP-Code:
    class Amount {
        private 
    $totalAmount 0.0;

        public function 
    addAmount($amount) {
            
    $this->totalAmount += $amount;
        }

        public function 
    getTotal() {
            return 
    $this->totalAmount;
        }

    PHP-Code:
    $amount = new Amount();
    $amount->addAmount(1.23);
    $amount->addAmount(2.45);
    echo 
    $amount->getTotal(); 

    Kommentar


    • #3
      Wow. Es hat geklappt. Ich hatte es so ähnlich auch versucht, aber hatte wohl noch einen Fehler drin.
      Vielen Dank.

      Kommentar

      Lädt...
      X