mirror of
https://github.com/php/doc-de.git
synced 2026-03-23 23:02:13 +01:00
296 lines
9.9 KiB
XML
296 lines
9.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: 0e618211e53c66f33762be225a4d57c08ef4b2f7 Maintainer: cmb Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
|
|
<title>Grundlagen der Syntax</title>
|
|
<sect1 xml:id="language.basic-syntax.phptags">
|
|
<title>PHP-Tags</title>
|
|
<para>
|
|
Wenn PHP eine Datei verarbeitet, erkennt es die öffnenden und schließenden
|
|
Tags <literal><?php</literal> und <literal>?></literal>, um den
|
|
Bereich abzugrenzen, in dem PHP-Code ausgeführt wird. Inhalte außerhalb
|
|
dieser Tags werden vom PHP-Parser ignoriert, so dass PHP nahtlos in
|
|
verschiedene Dokumenttypen integriert werden kann.
|
|
</para>
|
|
<para>
|
|
Nach <literal><?php</literal> muss ein Whitespace-Zeichen (Leerzeichen,
|
|
Tabulator oder Zeilenumbruch) folgen, um eine korrekte Trennung der Token
|
|
zu gewährleisten.
|
|
Wird dieses Zeichen weggelassen, führt dies zu einem Syntaxfehler.
|
|
</para>
|
|
<para>
|
|
PHP kennt außerdem den kurzen Ausgabe-Tag <literal><?=</literal>, der
|
|
eine Kurzform für <code><?php echo</code> ist.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Öffnende und schließende PHP-Tags</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
1. <?php echo 'Verwenden Sie diese Tags, wenn Sie PHP-Code in XHTML- oder
|
|
XML-Dokumenten ausgeben wollen'; ?>
|
|
|
|
2. Sie können den kurzen echo-Tag für die
|
|
<?= 'Ausgabe dieser Zeichenkette' ?> verwenden.
|
|
Es ist äquivalent zur <?php echo 'Ausgabe dieser Zeichenkette' ?>.
|
|
|
|
3. <? echo 'dieser Code ist innerhalb von kurzen Tags, wird aber nur '.
|
|
'funktionieren, wenn short_open_tag aktiviert ist'; ?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Kurze Tags (Beispiel drei) sind standardmäßig verfügbar, können aber
|
|
entweder über die Anweisung
|
|
<link linkend="ini.short-open-tag">short_open_tag</link> der
|
|
&php.ini;-Konfigurationsdatei deaktiviert werden oder sind standardmäßig
|
|
deaktiviert, wenn PHP mit der Konfigurationsanweisung
|
|
<option>--disable-short-tags</option> gebaut wird.
|
|
</para>
|
|
<para>
|
|
<note>
|
|
<para>
|
|
Da kurze Tags deaktiviert werden können, wird für maximale
|
|
Kompatibilität empfohlen, nur die normalen Tags (<code><?php
|
|
?></code> und <code><?= ?></code>) zu verwenden.
|
|
</para>
|
|
</note>
|
|
</para>
|
|
<para>
|
|
Wenn eine Datei mit PHP-Code endet, ist es besser, den schließenden
|
|
PHP-Tag am Ende der Datei wegzulassen. Dies verhindert, dass versehentlich
|
|
Leerzeichen oder neue Zeilen nach dem schließenden Tag eingefügt werden,
|
|
was unerwünschte Effekte verursachen kann, da PHP mit der Ausgabe beginnt,
|
|
obwohl der Programmierer an dieser Stelle des Skripts nicht die Absicht
|
|
hat, eine Ausgabe zu senden.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Datei nur mit PHP-Code</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
echo "Hallo Welt\n";
|
|
|
|
// ... mehr Code
|
|
|
|
echo "Letzte Anweisung\n";
|
|
|
|
// das Skript endet hier ohne schließenden PHP-Tag
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="language.basic-syntax.phpmode">
|
|
<title>Den HTML-Bereich verlassen</title>
|
|
<para>
|
|
Alles außerhalb eines Paares von öffnenden und schließenden Tags wird vom
|
|
PHP-Parser ignoriert, was es ermöglicht, dass PHP-Dateien gemischten
|
|
Inhalt haben können. Dadurch kann PHP in HTML-Dokumente eingebettet
|
|
werden, zum Beispiel um Templates zu erstellen.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>PHP in HTML einbetten </title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<p>Das hier wird von PHP ignoriert, und vom Browser angezeigt.</p>
|
|
<?php echo 'Wohingegen das hier geparst wird.'; ?>
|
|
<p>Dies wird ebenfalls von PHP ignoriert, und vom Browser angezeigt.</p>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
Dies funktioniert wie erwartet, da der PHP-Interpreter, wenn er auf einen
|
|
schließenden ?>-Tag trifft, einfach beginnt, alles mit Ausnahme des
|
|
direkt folgenden Zeilenumbruchs (siehe auch den Abschnitt <link
|
|
linkend="language.basic-syntax.instruction-separation">Abgrenzung von
|
|
Anweisungen</link>) auszugeben, bis er wieder auf einen öffnenden Tag
|
|
stößt. Das gilt nicht in der Mitte einer bedingten Anweisung. In diesem
|
|
Fall ermittelt der Interpreter das Resultat der Bedingung, bevor er
|
|
entscheidet, was übersprungen wird. Siehe das folgende Beispiel.
|
|
</para>
|
|
<para>
|
|
Verwendung von Strukturen mit Bedingungen
|
|
<example>
|
|
<title>Fortgeschrittene Ausgabe unter Verwendung von Bedingungen</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php if ($expression == true): ?>
|
|
Dies wird angezeigt, wenn der Ausdruck wahr ist.
|
|
<?php else: ?>
|
|
Andernfalls wird dies angezeigt.
|
|
<?php endif; ?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
In diesem Beispiel überspringt PHP die Blöcke, in denen die Bedingung
|
|
nicht erfüllt ist, obwohl diese außerhalb der öffnenden/schließenden
|
|
PHP-Tags liegen; PHP überspringt sie entsprechend der Bedingung, da der
|
|
PHP-Interpreter Blöcke innerhalb einer nicht erfüllten Bedingung
|
|
überspringt.
|
|
</para>
|
|
<para>
|
|
Für die Ausgabe von großen Textblöcken ist der Ausstieg aus dem
|
|
Parse-Modus generell effizienter, als den gesamten Text durch
|
|
<function>echo</function> oder <function>print</function> zu jagen.
|
|
</para>
|
|
<para>
|
|
<note>
|
|
<para>
|
|
Wenn PHP in XML oder XHTML eingebettet wird, müssen die normalen
|
|
<code><?php ?></code>-PHP-Tags verwenden werden, um die Standards
|
|
einzuhalten.
|
|
</para>
|
|
</note>
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="language.basic-syntax.instruction-separation">
|
|
<title>Die Trennung von Anweisungen</title>
|
|
<para>
|
|
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.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Beispiel für den schließenden Tag, der den abschließenden Zeilenumbruch einschließt</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php echo "Etwas Text"; ?>
|
|
Kein Zeilenumbruch
|
|
<?= "Aber jetzt ein Zeilenumbruch" ?>
|
|
]]>
|
|
</programlisting>
|
|
&example.outputs;
|
|
<screen>
|
|
<![CDATA[
|
|
Etwas TextKein Zeilenumbruch
|
|
Aber jetzt ein Zeilenumbruch
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Beispiele für das Starten und Beenden des PHP-Parsers</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
echo "Dies ist ein Test\n";
|
|
?>
|
|
|
|
<?php echo "Dies ist ein Test\n" ?>
|
|
|
|
<?php echo "Wir ließen den letzten schließenden Tag weg\n";
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<note>
|
|
<para>
|
|
Der schließende Tag eines PHP-Blocks am Ende einer Datei ist optional,
|
|
und in einigen Fällen ist das Weglassen hilfreich, wenn Sie
|
|
<function>include</function> oder <function>require</function>
|
|
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.
|
|
</para>
|
|
</note>
|
|
</para>
|
|
</sect1>
|
|
<sect1 xml:id="language.basic-syntax.comments">
|
|
<title>Kommentare</title>
|
|
<para>
|
|
PHP unterstützt 'C'-, 'C++'- und Unix-Shell-artige (Perl-artige)
|
|
Kommentare. Zum Beispiel:
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Kommentare</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
echo "Dies ist ein Test\n"; // Dies ist ein einzeiliger Kommentar im C++-Stil
|
|
/* Dies ist ein mehrzeiliger Kommentar
|
|
noch eine weitere Kommentarzeile */
|
|
echo "Dies ist noch ein Test\n";
|
|
echo "... und ein letzter Test\n"; # Dies ist ein einzeiliger Kommentar im Shell-Stil
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<simpara>
|
|
Die "einzeiligen" Kommentar-Arten kommentieren sämtlichen Text bis zum
|
|
Zeilenende oder bis zum Ende des aktuellen PHP-Blocks aus, je nachdem, was
|
|
zuerst eintritt. Das bedeutet, das HTML-Code nach <literal>// ...
|
|
?></literal> oder <literal># ... ?></literal> ausgegeben WIRD: ?>
|
|
beendet den PHP-Modus und kehrt in den HTML-Modus zurück, so dass sich
|
|
<literal>//</literal> oder <literal>#</literal> nicht darauf auswirkt.
|
|
</simpara>
|
|
<para>
|
|
<example>
|
|
<title>Einzeilige Kommentare</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<h1>Dies ist ein <?php # echo 'einfaches';?> Beispiel.</h1>
|
|
<p>Obige Überschrift wird lauten: 'Dies ist ein Beispiel.'.
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<simpara>
|
|
'C'-artige Kommentare enden am ersten Vorkommen von <literal>*/</literal>.
|
|
Achten Sie daher darauf, 'C'-artige Kommentare nicht zu verschachteln.
|
|
Dieser Fehler entsteht leicht, wenn Sie längere Code-Blöcke
|
|
auskommentieren.
|
|
</simpara>
|
|
<para>
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
/*
|
|
echo 'Dies ist ein Test'; /* Dieser Kommentar wird ein Problem verursachen. */
|
|
*/
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
</sect1>
|
|
|
|
</chapter>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|