PHP: Variablen verknüpft mit Text ausgeben
Um Variablen kombiniert mit Strings (= Zeichenketten, Texte) auszugeben, gibt es in PHP viele Möglichkeiten. Die unterschiedlichen Methoden, sowie die Vor- und Nachteile werden hier erläutert. Als Beispiel dient uns jeweils eine Variable, welcher ein Name zugewiesen wird. Diese Variable möchten wir innerhalb eines Satzes verwenden.
1. String mit Variablen verknüpfen mittels Punkt
Mit einem Punkt kann man an einen String eine Variable anknüpfen. Dies gilt natürlich auch für die umgekehrte Reihenfolge. Bei dieser Variante dürfen für die Strings doppelte, sowie einfache Anführungsstriche verwendet werden.
$name = 'Richard';
echo 'Ich hoffe, dass ' . $name . ' dies liest.';
// Ausgabe: Ich hoffe, dass Richard dies liest.
2. Variable innerhalb eines Strings verwenden
Einfacher zu schreiben und auch leichter zu lesen: Die Variable wird direkt innerhalb des Strings verwendet. Diese Variante funktioniert nur, wenn für den String doppelte Anführungsstriche verwendet werden.
$name = "Wolfgang";
echo "Das hat $name geschrieben.";
// Ausgabe: Das hat Wolfgang geschrieben.
Solange direkt nach dem Variablenname kein Buchstabe, keine Zahl und kein Unterstrich folgt, ist diese Schreibweise die Einfachste. Wünscht man aber die Ausgabe "Ich habe Sylvias stift.", funktioniert diese Methode nicht mehr ganz so einfach. Besser sieht man dies an folgendem Beispiel:
$name = "Sylvia";
echo "Ich habe $names Stift.";
// Ausgabe: Ich habe Stift.
Hier würde PHP die Variable $names verwenden wollen, anstatt der von uns gewünschten $name mit angehängtem "s". Je nach Einstellung wird auch noch ein Fehler der Klasse Notice geworfen. Woher aber soll PHP auch wissen welche Variable gewünscht ist? In so einem Fall muss man PHP mit geschwungenen Klammern explizit sagen, von und bis wo die Variable steht, um die korrekte Ausgabe zu erhalten.
$name = "Sylvia";
echo "Ich habe {$name}s Stift.";
// Ausgabe: Ich habe Sylvias Stift.";
Auch wenn es sich um Arrays handelt ist es dringend zu empfehlen, die Variante mit den geschwungenen Klammern zu verwenden, da man bei den Schlüsseln des Arrays die Anführungsstriche, mit welchen man den String gestartet hat, nochmal benötigt.
$person = array("name" => "Christine", "ort" => "Salzburg");
echo "Jeder weiß, dass {$person["name"]} in {$person["ort"]} wohnt.";
// Ausgabe: Jeder weiß, dass Christine in Salzburg wohnt.
3. Variablen ausgeben mit der Heredoc Syntax
Die Heredoc Syntax findet dann Anwendung, wenn ein längerer Text erstellt oder ausgegeben werden soll. Innerhalb dieser Notifikation lassen sich, gleich wie bei der Ausgabe von Variablen innerhalb eines Strings, die Variablen direkt in den Text integrieren. Bei der Verwendung der Variablen muss auf die gleichen Regeln geachtet werden, wie bei der Ausgabe in Strings: Die geschwungenen Klammern nicht vergessen, wenns nicht funktioniert wie man will!
$name = "John Doe";
echo <<<EOF
Dies ist der Heredoc Bereich von $name,
er kann auch mehrzeilig sein!
EOF;
Unterm Strich: Die Qual der Wahl
Unterm Strich bleibt für den Programmierer die übliche Qual der Wahl. Hier gibt es kein Richtig oder Falsch, es ist eine reine Stilfrage die man selbst entscheiden muss.
Markus