W3docs

endif

Das Schlüsselwort "endif" ist eine Kontrollstruktur in PHP zum Beenden einer "if"-Anweisung. Dieser Artikel erklärt Syntax und Verwendung.

endif

Das Schlüsselwort endif ist Teil der alternativen Syntax von PHP für Kontrollstrukturen. Anstatt den Rumpf einer if-Anweisung in geschweifte Klammern ({ ... }) zu fassen, öffnet die alternative Syntax den Block mit einem Doppelpunkt (:) und schließt ihn mit endif;. Dieser Stil wurde eigens eingeführt, damit PHP-Code sauber lesbar bleibt, wenn er in Templates mit HTML vermischt wird.

Dieser Artikel behandelt die Syntax von endif, wann man sie einsetzen sollte, und welche typischen Fallstricke es gibt.

Syntax

Ein standardmäßiger if-Block verwendet geschweifte Klammern; die alternative Syntax ersetzt die öffnende Klammer durch : und die schließende Klammer durch endif;:

Die PHP-Syntax von endif

// Brace syntax
if ($condition) {
  // code to be executed
}

// Alternative syntax — equivalent
if ($condition):
  // code to be executed
endif;

Zwei Regeln sind wichtig:

  • Die Bedingungszeile endet mit einem Doppelpunkt (:), nicht mit einer öffnenden Klammer.
  • Der Block wird mit endif geschlossen, dem zwingend ein Semikolon (;) folgen muss. Das Weglassen des Semikolons ist hier die häufigste Ursache für einen Parse-Fehler.

Das gleiche Muster gilt für die anderen Kontrollstrukturen: endforeach, endfor, endwhile und endswitch.

Beispiele

Schauen wir uns einige praktische Beispiele an, wie das Schlüsselwort endif verwendet werden kann:

Beispiele für PHP endif

<?php

// Example 1
$x = 5;
if ($x == 5):
  echo "The value of x is 5." . PHP_EOL;
endif;

// Output: The value of x is 5.

// Example 2
$x = 10;
if ($x > 5):
  echo "The value of x is greater than 5.";
else:
  echo "The value of x is less than or equal to 5.";
endif;

// Output: The value of x is greater than 5.

In diesen Beispielen verwenden wir das Schlüsselwort endif, um das Ende einer if-Anweisung zu markieren. Die alternative Syntax unterstützt auch else- und elseif-Zweige innerhalb desselben Blocks, die alle mit einem einzigen endif; abgeschlossen werden:

<?php

$score = 82;

if ($score >= 90):
  echo "Grade: A";
elseif ($score >= 80):
  echo "Grade: B";
elseif ($score >= 70):
  echo "Grade: C";
else:
  echo "Grade: F";
endif;

// Output: Grade: B

Beachte, dass in der alternativen Syntax elseif als ein Wort geschrieben wird — else if (zwei Wörter) ist in einem Block mit alternativer Syntax nicht gültig.

Verwendung von endif in HTML-Templates

Dies ist der eigentliche Grund für die Existenz von endif. Wenn PHP und HTML gemischt werden, ist eine abschließende } leicht zu übersehen, während <?php endif; ?> fast wie ein schließendes Tag wirkt und klar angibt, welche Struktur beendet wird. Vergleiche die beiden Stile:

<!-- Hard to scan: brace floating in markup -->
<?php if ($loggedIn) { ?>
  <p>Welcome back!</p>
<?php } ?>

<!-- Self-documenting: alternative syntax -->
<?php if ($loggedIn): ?>
  <p>Welcome back!</p>
<?php endif; ?>

Die alternative Form hält deine Templates lesbar, besonders wenn Blöcke verschachtelt sind – deshalb setzen die meisten klassischen PHP-Templates (und viele eingebaute Templating-Systeme von Frameworks) darauf.

Häufige Fallstricke

  • Das Semikolon nach endif ist Pflicht. endif ohne ; löst einen Parse-Fehler aus.
  • Syntaxstile dürfen nicht innerhalb eines Blocks gemischt werden. Man kann nicht mit { öffnen und mit endif schließen oder mit : öffnen und mit } schließen.
  • Verwende elseif, nicht else if. Die zweiteilige Form ist nur in der Syntax mit geschweiften Klammern erlaubt.

Vorteile

Die Verwendung des Schlüsselworts endif bietet mehrere Vorteile, darunter:

  • Verbesserte Lesbarkeit: Das Schlüsselwort endif macht Kontrollstrukturen leichter lesbar, besonders in Templates, in denen HTML- und PHP-Code gemischt sind.
  • Klarere Struktur: Es bietet einen eindeutigen, benannten Abschlussmarker für jeden Kontrollblock und verringert so die Gefahr von nicht übereinstimmenden Klammern in komplexen Layouts.

Fazit

Das Schlüsselwort endif ermöglicht es, einen if-Block mit einem klaren, benannten Marker statt einer geschweiften Klammer zu schließen – das zahlt sich besonders dann aus, wenn PHP in HTML eingebettet ist. Zur Vertiefung empfiehlt sich der vollständige Leitfaden zu if / else / elseif sowie die passenden alternativen Abschluss-Schlüsselwörter endforeach, endfor und endswitch.

Übungen

Übung
Welche der folgenden Aussagen über die endif-Direktive in PHP sind wahr?
Welche der folgenden Aussagen über die endif-Direktive in PHP sind wahr?
Was this page helpful?