Montag, 10. Januar 2011

Kleinigkeiten: Texte zuweisen

Kleinigkeiten. Wie die Zuweisung von Text zu einer Variablen. PHP kennt dabei elegante und weniger elegante Methoden.
Auf die Unterschiede zwischen einfachen und doppelten Anführungszeichen soll hier nicht weiter eingegangen werden. Es sei nur kurz erwähnt, dass innerhalb von doppelten Anführungszeichen Variablen und maskierte Sonderzeichen wie Zeilenumbrüche "\n" oder Tabulatoren "\n" berücksichtigt werden.

In unseren Beispieltext wollen wir auch Variablen wie beispielsweise $WortEins = 'Plato'; einfügen.

Als besonders elegant kann man dabei folgende Möglichkeit ansehen:
$text = "Does $WortEins, in speaking of \"the\n";
$text .= "fruits having a hard rind,\n";
$text .= "affording drinks and meats and\n";
$text .= 'ointments," refer to the '.$WortZwei.'?';
Jede Textzeile wird für sich an die Variable angehängt. Ganz so wie in den alten Zeiten von Basic in denen das Zeilenende auch das Ende der Anweisung war. Eben Retro pur. Desto mehr Zeilen man hat, desto eleganter wird das Konstrukt natürlich. Jede umfangreichere Textänderung kann so zum Erlebnis werden. Vielen Dank an alle die so arbeiten und mich zu diesem Beitrag inspiriert haben!

Nicht mehr so elegant und auch nicht mehr im beliebten Retro-Style ist es sich die Tatsache zunutze zu machen, dass nicht der Zeilenumbruch, sondern das Semikolon unter PHP das Ende einer Anweisung markiert. Bei dieser Methode entfällt leider auch das schicke "\n" für den Zeilenumbruch.
$text = "Does $WortEins, in speaking of \"the 
fruits having a hard rind,
affording drinks and meats and
ointments,\" refer to the $WortZwei?";
Wer auf Eleganz Wert legt, sollte um das Heredoc-Konstrukt einen großen Bogen machen. Weder Anführungszeichen, noch das schicke "\n" kommen hier zum Einsatz. Weder das einfache noch das doppelte Anführungszeichen müssen maskiert werden und auch Variablen werden einfach in den Text geschrieben.
$text = <<< IrgendeinMarker
Does $WortEins, in speaking of "the
fruits having a hard rind,
affording drinks and meats and
ointments," refer to the $WortZwei?
IrgendeinMarker;
Der Vollständigkeit halber sei noch das in PHP 5.3 eingeführte Nowdoc-Konstrukt erwähnt das den Inhalt nicht weiter parst, siehe http://www.php.net/manual/de/language.types.string.php.

Und jetzt die Preisfrage: Über welche Frucht spricht Plato?

Keine Kommentare:

Kommentar veröffentlichen