CascadiaPHP 2024

Die Trennung von Anweisungen

Wie in C oder Perl müssen Anweisungen auch in PHP am Ende mit einem Semikolon abgeschlossen werden. Der abschließende Tag eines PHP-Codeblocks impliziert automatisch ein Semikolon; die letzte Zeile eines PHP-Blocks benötigt kein Semikolon am Ende. Der schließende Tag des Blocks schließt den unmittelbar folgenden Zeilenumbruch, falls vorhanden, ein.

Beispiel #1 Beispiel für den schließenden Tag, der den abschließenden Zeilenumbruch einschließt

<?php echo "Etwas Text"; ?>
Kein Zeilenumbruch
<?= "Aber jetzt ein Zeilenumbruch" ?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Etwas TextKein Zeilenumbruch
Aber jetzt ein Zeilenumbruch

Beispiele für das Starten und Beenden des PHP-Parsers:

<?php
echo 'Dies ist ein Test';
?>

<?php echo 'Dies ist ein Test' ?>

<?php echo 'Wir ließen den letzten schließenden Tag weg';

Hinweis:

Der schließende Tag eines PHP-Blocks am Ende einer Datei ist optional, und in einigen Fällen ist das Weglassen hilfreich, wenn Sie include oder require verwenden, so dass ungewollte Whitespaces nicht am Ende einer Datei auftreten und Sie noch im Stande sind, später weitere Header an die Antwort hinzuzufügen. Es ist ebenfalls praktisch, wenn Sie die Ausgabepufferung verwenden und keine ungewollten Whitespaces am Ende eines durch die eingebundenen Dateien erzeugten Teils sehen wollen.

add a note

User Contributed Notes 3 notes

up
57
Krishna Srikanth
17 years ago
Do not mis interpret

<?php echo 'Ending tag excluded';

with

<?php echo 'Ending tag excluded';
<
p>But html is still visible</p>

The second one would give error. Exclude ?> if you no more html to write after the code.
up
1
M1001
2 years ago
You are also able to write more than one statement in one line, just separating with a semicolon, example:

<?php
echo "a"; echo "b"; echo "c";
#The output will be "abc" with no errors
?>
up
0
moonlander12341234 at gmail dot com
3 months ago
A user from stack overflow had a nice explanation for the trailing newline, simply put,

<?= "Hello" ?>
Jello

would output,

HelloJello

meaning that implicit newline from the ?> tag is not there, however one can simply add that to the code such as,

<?= "Hello" ?>

Jello

the space between acts as a new line after the closing tag
To Top