Der ganze Zauber passiert in mult ().
Zuerst wird ein Bruch Objekt erzeugt ($erg) - leer initialisiert.
Dann werden ihm Nenner und Zähler zugewiesen. Dazu wird der entsprechende Wert aus dem aktuellen Objekt ($this) mit dem eines übergebenen Objektes ($m) multipliziert. Das Ergebnis fließt in das neue Objekt ein.
Das ganze Konstrukt multipliziert also streng genommen nicht zwei Bruch Objekte miteinander, sondern eines mit dem aktuellen. Eine etwas eigenwillige Art im Bereich der Objektorientierung. Ein vergleichbares Denkmodell ist wohl ein Taschenrechner, bei dem jede Operation immer bezüglich des aktuellen Wertes erfolgt. Der Unterschied: Die Methode mult () spuckt ein neues Objekt aus. Würdest Du stattdessen
PHP-Code:
public function mult ($m)
{
$this->_zaehler = $this->_zaehler * $m->_zaehler;
$this->_nenner = $this->_nenner * $m->_nenner;
}
schreiben, hättest Du den ultimativen Taschenrechner (mit genau einer Funktion).