©Sergey Emelyanov 2025 | Alle Rechte vorbehalten
Die if-else-Konstruktion ist ein grundlegendes Werkzeug in der Programmierung. Doch in komplexen Systemen – wie CRM-Anwendungen – kann übermäßiger Gebrauch von else zu unübersichtlichem Code führen. In diesem Artikel zeigen wir, wie Sie else vermeiden und damit lesbareren, wartbareren Code schreiben.
Eine Funktion mit else übernimmt oft mehrere Verantwortungen:
function getUserData($userID) {
$user = findUserByID($userID);
if ($user->isActive) {
return $user->getData(); // Fall 1
} else {
return getDefaultUserData(); // Fall 2
}
}
Hier werden zwei Fälle behandelt – die Funktion entscheidet und liefert Daten. Das kann zu:
Statt else
zu nutzen, kehren Sie früh zurück, wenn Bedingungen nicht erfüllt sind:
function getUserData($userID) {
$user = findUserByID($userID);
// Guard Clause: Prüfe zuerst den "Ausnahmefall"
if (!$user->isActive) {
return getDefaultUserData();
}
return $user->getData(); // Hauptlogik
}
Vorteile:
Setzen Sie Standardwerte vorab und überschreiben Sie sie nur bei Bedarf:
function getUserStatus($userID) {
$status = 'guest'; // Default-Wert
$user = findUserByID($userID);
if ($user) {
$status = $user->status;
}
return $status;
}
Für kurze Bedingungen eignen sich ternäre Operatoren:
function getUserStatus($userID) {
$user = findUserByID($userID);
return $user ? $user->status : 'guest';
}
⚠️ Achtung:
function processOrder(Order $order) {
if (!$order->isValid()) {
throw new InvalidOrderException();
}
// Hauptlogik
}
class UserFactory {
public static function create(array $data): User {
$user = new User();
// Setze Default-Werte
if (isset($data['name'])) {
$user->setName($data['name']);
}
return $user;
}
}
class Invoice {
public function markAsPaid(): void {
if ($this->isPaid) {
return; // Guard Clause
}
$this->isPaid = true;
}
}
if (x > 0) { ... } else if (x < 0) { ... }
).Die Vermeidung von else ist kein Dogma, aber eine empfehlenswerte Praxis für cleanen Code. In CRM-Systemen, wo Geschäftslogik oft komplex ist, helfen Guard Clauses und Default-Werte, Fehlerquellen zu minimieren und die Wartbarkeit zu erhöhen.
Weiterführende Techniken:
Indem Sie else bewusst einsetzen – oder vermeiden – schreiben Sie Code, der robust, erweiterbar und teamfreundlich ist.
©Sergey Emelyanov 2025 | Alle Rechte vorbehalten