Oft brauche ich eine Funktion, die mir einen von verschiedenen Faktoren abhängigen Wert zurück liefert. Das folgende Beispiel stammt aus der Berechnung von Bonuspunkten für einen Onlineshop.
public function getCreditPoints() { $points = $this->_getBasisPoints(); if ($this->_isPayedWithCreditCard()) { $points *= 1.1; } else if ($this->_isPayedWithPrepayment()) { $points *= 1.25; } return $points; }
Der Code ist soweit okay, lässt sich aber in einer Hinsicht noch optimieren. Jeder, der sich die Methode anschaut, muss sich sowohl beim if-Block als auch beim elseif-Block merken, was bisher passiert ist. Denn zu dem Zeitpunkt weiß der Leser ja noch nicht, dass mit $points nichts mehr gemacht wird.