Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Einführung in PHP
Letztes Update: 04.09.2007 20:49:50

Navigation

Seite Startseite
Seite Aktuelles
Seite Seite News*
Seite Seite Pressemitteilungen*
Seite SELFPHP
Seite Seite Über SELFPHP
Seite Seite Werbung
Seite Seite Kontakt
Seite Seite Unsere Banner
Seite Seite Impressum
Seite Qozido
Seite Seite Diving Edition
Seite Seite Snorkeling Edition
Seite SELFPHP Dokumentation
Seite Seite PHP-Skripte
Seite Seite PHP Befehlsreferenz
Seite Seite PHP 5 Praxisbuch
Seite Seite PHP Code Snippets
Seite Seite SELFPHP in Buchform
Seite Anbieterverzeichnis
Seite Seite Globale Branchen
Seite Seite Webhosting/Server
Seite Services
Seite Seite Forum*
Seite Seite RSS-Feeds*
Seite Seite Downloads*
Seite Seite Gratis-Video-Lektionen*
Seite Seite SELFPHP auf Heft-CD*
Seite Seite Newsletter*
Seite Internet Security
 sponsored by  
Seite Stellenangebote*
Sedo - Bei uns wird PHP großgeschrieben
Seite Premium-Partner   
Webhosting/Serverlösungen
Seite Produktempfehlung   
Seite Seite SteadyBackup

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  
 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 100.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 




 

Heredoc




Eine andere Möglichkeit, Strings einzufassen, besteht im Gebrauch der heredoc-Syntax ("<<<"). Hierfür ist nach <<< ein Bezeichner zu setzen. Nun folgt der eigentliche String und dann derselbe Bezeichner, um den String abzuschließen. Der schließende Bezeichner muss in der ersten Spalte der Zeile stehen.

Achtung: Es ist sehr wichtig zu beachten, dass die Zeile mit dem schließenden Bezeichner keine anderen Zeichen enthält, ausgenommen möglicherweise ein Semikolon (;). Das bedeutet, dass der Bezeichner nicht eingerückt werden darf. Es dürfen weiterhin keine Leerzeichen oder Tabulatoren vor oder nach dem Semikolon stehen.

echo <<<EINTRAG
Beispiel eines Strings
über mehrere Skript-Zeilen
durch Gebrauch der heredoc-Syntax.
EINTRAG;

Heredoc-Text funktioniert wie ein String innerhalb doppelter Anführungszeichen, nur ohne doppelte Anführungszeichen. Anführungszeichen innerhalb von heredoc-Texten müssen also keiner Sonderbehandlung (Escapen) unterzogen werden. Sie können dennoch die oben aufgeführten Escape-Anweisungen verwenden. Variablen werden ausgewertet, aber besondere Aufmerksamkeit muss komplexen Variablen gewidmet werden, genau wie bei Strings.

$name = 'Matthias';

echo <<<BUCH
Diese Buch stammt vom <b>$name</b> und stellt Ihnen PHP vor.
BUCH;

Hinweis: Die heredoc-Unterstützung wurde in PHP 4 eingeführt.

Die Anwendung ist natürlich nicht auf den echo-Befehl beschränkt. Sie können auch einer Variablen einen solchen Block übergeben:

<?php
$personen = <<<NAMEN
Matthias Kannengiesser,<br>
Caroline Kannengiesser,<br>
Gülten Kannengiesser
NAMEN;

print $personen;
?>

Das sieht unter Umständen viel übersichtlicher und einfacher aus, als wenn die Werte hintereinander stehen. Denken Sie aber daran, dass hier die Zeilenumbrüche erhalten bleiben – nicht in jedem Fall funktioniert das problemlos.


Typische Probleme

Am Anfang passiert es oft, dass der Interpreter nach dem Einbau der Blöcke Fehler meldet. Das folgende Beispiel funktioniert nicht wie erwartet:

<?php

$ausgabe = 1;

if ($ausgabe == 1) {
  $personen = <<<NAMEN
  Matthias Kannengiesser,<br>
  Caroline Kannengiesser,<br>
  Gülten Kannengiesser
  NAMEN;

  echo $personen;
}

?>

Ausgabe

Parse error: parse error, unexpected $end in C:\php5xampp-dev\htdocs\php5\ersteschritte.php on line 16

Der Fehler liegt nicht direkt im Code, sondern in der Art, wie PHP diesen verarbeitet. Das Ende der heredoc-Sequenz wird nur erkannt, wenn das Schlüsselwort NAMEN am Anfang der Zeile steht. Durch die Einrückung wird es nicht mehr erkannt.

Korrekt

<?php

$ausgabe = 1;

if ($ausgabe == 1) {
  $personen = <<<NAMEN
  Matthias Kannengiesser,<br>
  Caroline Kannengiesser,<br>
  Gülten Kannengiesser
NAMEN;

  echo $personen;
}

?>



 




 sponsored by

Sedo - Bei uns wird PHP großgeschrieben


VERIO - An NTT Communications Company


HighText iBusiness


Webspace-Verkauf.de


video2brain




 Premium-Partner
 Webhosting/Serverlösungen

BPI-Systeme


Premium-Partner Pixel X


Premium-Partner First Colo


Premium-Partner dogado Internet




Qozido


© 2001-2008 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt