Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
 
 

Heredoc -Syntax und dessen richtige Anwendung

Sie befinden sich: Home > Php > Heredoc Syntax

Wenn in PHP die Anforderung gestellt wird innerhalb eines Charakter – Strings Variablen, Sonderzeichen oder doppeltes Anführungszeichen zu verwenden, wird die Eingabe durch die Syntax-Konventionen erheblich erschwert. Wenn z. B. ein doppeltes Anführungszeichen ausgegeben werden soll, muss es umständlich durch den Escape Charakter \ erweitert werden. Um dies zu vereinfachen, wurde der sogenannte Heredoc – Syntax eingeführt.

Diese Vereinfachung erlaubt es, einem String einen kompletten Text so an eine Variable zu übergeben, dass die sonst übliche Verwendung von Escapezeichen als syntaktische Elemente entfallen können.

Die Anwendung birgt allerdings ein paar Fehlerquellen, die unbedingt beachtet werden müssen.

Das nachfolgende Beispiel zeigt die Anwendung und die damit verbundenen Vereinfachungen.

<?php
$variable_eins = '<b>Inhalt der Variable</b>';
$mein_text = <<< EOT
Das hier ist ein kleiner PHP Text.
Es steht dem Anwender vollkommen frei "doppelte
Anführungszeichen" oder 'einfache'
zu setzen,
Auch $variable_eins wird innerhalb
dieses Textes korrekt mit dem entsprechenden
Inhalt angezeigt, auch hier sind keine Anführungszeichen
nötig. Selbst EOT kann geschrieben werden, solange
es nicht alleine als erster Ausdruck in einer
Zeile steht, wie das folgende
EOT;
echo $mein_text;
?>

Der Ausdruck EOT (End Of Text) ist in diesem Beispiel willkürlich gewählt, es kann jeder beliebige Ausdruck verwendet werden, vorausgesetzt er ist in der Einleitung mit „<<<“ definiert worden, und ist kein in PHP selbst definierter Funktionsname wie array() oder Ähnliches. Näheres regeln hier die allgemeinen Richtlinien für die Namensgebung unter PHP. Der eindeutige Bezeichner im Heredoc Syntax ist ein Wort oder eine Zeichenkette, die an das Schluss-Tag-Zeichen gebunden ist. Der Bezeichner muss eindeutig sein, damit der Compiler weiß, wo der Heredoc Syntax endet.

Eine Konvention besteht darin, dass der beendende Ausdruck allein in einer neuen Zeile stehen, und von einem Semikolon abgeschlossen sein muss, sowie dass er nicht mit einem Leerzeichen beginnen darf. Das abschließende Zeichen darf jedoch innerhalb des Textes angewendet werden, wie auch im oben angeführten Beispiel zu sehen ist. Zeilenumbrüche werden ebenfalls so abgebildet oder geparst, wie sie im Heredoc – Block eingegeben wurden.

Quelltext vom Beispiel

Heredoc Quelltext Beispiel

Heredoc – Syntax findet relativ selten Anwendung bei professionell programmierten Scripten, obwohl es die Lesbarkeit gerade von gemischten Strings (Variablen und allgemeiner Text) erheblich steigert. Ebenfalls wird die Eingabe des Textes wesentlich vereinfacht. Dieser Umstand kommt gerade unerfahrenen Programmierern oftmals zugute. Heredoc – Code ist erstmals ab PHP-Version 4.0 verfügbar.

Ein Beispiel für die Verwendung von Heredoc Syntax mit Kommentaren wäre Folgendes:

<?php
$string = <<<COMMENT
Dies ist ein Beispiel für Heredoc Syntax mit Kommentaren.

// Hier können Kommentare hinzugefügt werden,
// ohne dass sie im Endergebnis ausgegeben werden.

Dies ist ein weiterer Kommentar.
COMMENT;

echo $string;
?>

Das obige Beispiel würde Folgendes ausgeben:

Dies ist ein Beispiel für Heredoc Syntax mit Kommentaren.

Dies ist ein weiterer Kommentar.

 

Was ist der Unterschied zwischen dem Heredoc Syntax und dem Nowdoc Syntax in PHP?

Der Hauptunterschied zwischen dem Heredoc Syntax und dem Nowdoc Syntax besteht darin, dass der Heredoc Syntax Variablen interpretiert und expandiert, während der Nowdoc Syntax die Variable als Literal behandelt. Außerdem muss der Nowdoc Syntax ein einzigartiges Bezeichnungswort als Marker haben, aber kein Semikolon am Ende des Blocks.

Nowdoc Syntax ist ein Weg, um in PHP einen String zu schreiben, der mehrere Zeilen umfasst, ohne dass Variablen oder andere Daten interpretiert werden. Es ähnelt dem Heredoc-Syntax, aber die Anführungszeichen sind einfache Anführungszeichen (') statt doppelt (") und es gibt keine Interpretation. 

Hier ist ein Beispiel für Nowdoc Syntax:

<?php
$nowdocString = <<<'EOT'
    Dies ist mein Nowdoc-String.
    Es kann über mehrere Zeilen gehen.
    Variablen werden nicht interpretiert: $variable
EOT;
?>

Erklärung:

Dieser Code definiert einen sogenannten Nowdoc-String. Es handelt sich dabei um einen speziellen Typ von String Literal, der in PHP verwendet wird. Der Nowdoc-String kann über mehrere Zeilen gehen und Variablen werden nicht interpretiert. Dies bedeutet, dass Variablen innerhalb des Strings nicht auf ihren Wert aufgelöst werden, sondern einfach als Text ausgegeben werden.




weiter include in Php