Alternative Syntax für Kontrollstrukturen
(PHP 4, PHP 5, PHP 7, PHP 8)
PHP bietet eine alternative Syntax für einige seiner Kontrollstrukturen an,
namentlich für if
, while
,
for
, foreach
und
switch
. In jedem Fall ist die Grundform der alternativen
Syntax ein Wechsel der öffnenden Klammer gegen einen Doppelpunkt (:) und der
schließenden Klammer in endif;
, endwhile
,
endfor;
, endforeach;
respektive
endswitch
.
<?php if ($a == 5): ?>
A ist gleich 5
<?php endif; ?>
Im obigen Beispiel ist der HTML-Block "A ist gleich 5" in ein
if
-Statement verschachtelt, das in alternativer Syntax
notiert ist. Der HTML-Block würde nur angezeigt werden, wenn
$a gleich 5 ist.
Die alternative Syntax lässt sich ebenfalls auf else
und
elseif
anwenden. Im Folgenden wird eine
if
-Struktur mit elseif
- und
else
-Teilen im alternativen Format gezeigt:
<?php
if ($a == 5):
echo "a gleich 5";
echo "...";
elseif ($a == 6):
echo "a gleich 6";
echo "!!!";
else:
echo "a ist weder 5 noch 6";
endif;
?>
Hinweis:
Das Vermischen unterschiedlicher Schreibweisen im selben Kontrollblock ist nicht unterstützt.
Jegliche Ausgabe (einschließlich Whitespace) zwischen einer
switch
Anweisung und dem ersten case
ist ein Syntax Fehler. Zum Beispiel ist folgendes ungültig:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
Hingegen ist das folgende gültig, da das abschließende Zeilenende nach der
switch
Anweisung als Teil des schließenden
?>
angesehen wird, und daher zwischen
switch
und case
nichts ausgegeben wird:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>