Wenn in PHP von Text die Rede ist, dann wird dieser als string bezeichnet. Text – ein string – wird immer in Anführungszeichen gesetzt. Es sind sowohl einfache als auch doppelte Anführungszeichen möglich. Es gibt jedoch Unterschiede beim Auslesen des Strings, je nachdem welche Art von Anführungszeichen man gewählt hat.
Die Anführungszeichen müssen immer ein gleiches Paar sein, also entweder doppelte oder einfache Anführungszeichen. Enthälter der Text selber ein Anführungszeichen, so müssen die doppelten Anführungszeichen gewählt werden, da der String ansonsten beim Anführungszeichen im Text enden würde. Wählt man die einfachen Anführungszeichen, so muss das Apostroph mit einem sogenannten Backslash (rückwärtsgestellten Schrägstrich) auskommentiert werden. Ein Anführungszeichen mit vorangestellten Backslash wird nicht als PHP Zeichen gewertet.
$film = "Jetzt schlägt's 13"; $film = 'Jetzt schlägt's 13';
Wenn der Titel selbst in Anführungszeichen stehen soll, dann kann man einfache Anführungszeichen für den String verwenden, muss dann jedoch auch wieder das einfache Anführungszeichen im Text mit einem Backslash (Escape Zeichen) maskieren:
$film ='"Jetzt schlägt's 13"';
Will man den String in doppelte Anführungszeichen setzen, so müssen die doppelten Anführungszeichen, die im Text dargestellt werden sollen, ebenfalls maskiert werden:
$film = "" Jetzt schlägt's 13"";
Das einfache Anführungszeichen muss in diesem Fall nicht maskiert werden, da das einfache Anführungszeichen nicht mehr als Eingrenzung des Textes benutzt wird und somit beim Auslesen des Strings nicht als Ende des Strings interpretiert werden kann. Zur besseren Lesbarkeit des Codes wird man aber eher unterschiedliche Anführungszeichen wählen statt mit dem Backslash die im Text enthaltenen doppelten Anführungszeichen zu maskieren.
Es gibt jedoch Anlässe, bei denen man die doppelten Anzeichen wählen muss. Dies ist dann der Fall, wenn der Text selbst eine Variable enhält, die von PHP interpretiert werden soll.
Beispiel:
$film "Jetzt schlägt's 13"; echo "Im Kino läuft $film";
Soll die Variable, der Filmtitel, bei der Ausgabe selber in Anführungszeichen erscheinen, so müssen diese maskiert werden:
echo "Im Kino läuft "$film"";
Würde man in diesem Fall bei der Wiedergabe die einfachen Anführungszeichen wählen,
echo 'Im Kino läuft $film';
dann würde der Wert von $film nicht ausgelesen, sondern der String mit seiner Variablenbezeichnung als normaler Text angesehen werden und der Filmtitel, der der Variablen als Wert zugewiesen wurde, würde nicht erscheinen.
Variablen werden nur innerhalb von doppelten Anführungszeichen ausgelesen:
echo "Im Kino läuft $film";
Bei diesem Beispiel würde dann statt $film der jeweils zugewiesene Filmtitel erscheinen. Doppelte Anführungszeichen weisen PHP an, Variablen, die im Text enthalten sind auszuwerten und statt der Variablenbezeichnung den Wert der Variablen wiederzugeben.
Doppelte Anführungszeichen werten auch die folgenden Maskierungszeichen aus:
" => doppelte Anführungszeichen n => neue Zeile im Quelltext r => Zeilenumschaltung (ebenfalls neue Zeile im Quelltext) t => Tab (Abstand bei der Ausgabe des Textes) => Backslash $ => Dollarzeichen { => sich öffnende geschweifte Klammer } => sich schließende geschweifte Klammer [ => sich öffnende eckige Klammer ] => sich schließende eckige Klammer
In einfachen Anführungszeichen würden diese Zeichen inklusive des Maskierungszeichens (Backslashs) ausgegeben werden (Ausnahme ” – diese Maskierung wird auch innerhalb von einfachen Anführungszeichen als Maskierung interpretiert).
In der Praxis werden meistens einfache Anführungszeichen für strings gewählt außer wenn der String Variablen oder maskierte Zeichen enthält.