Menu

PHP Strings: Anführungszeichen, Verkettung, Interpolation

PHP-Strings verbindest du mit dem Punktoperator ("Hello, " . $name) oder setzt Variablen direkt in doppelte Anführungszeichen ("Hello, $name"). Einfache Anführungszeichen geben Text wörtlich aus. Hier: Verkettung, .=, Interpolation von Arrays und Objekten und Groß-/Kleinschreibung mit strtoupper, strtolower, ucfirst und ucwords.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

Ein PHP-String ist Text in einfachen oder doppelten Anführungszeichen. Strings verbindest du mit dem Punktoperator, $first . ' ' . $last, oder du setzt eine Variable direkt in doppelte Anführungszeichen: "Hello, $name".

Der Punkt verbindet zwei beliebige Werte zu einem neuen String. Zahlen werden für dich umgewandelt, also ist "Total: " . 42 gleich "Total: 42".

Einfache vs doppelte Anführungszeichen

Doppelte Anführungszeichen machen zwei Dinge zusätzlich: Sie ersetzen Variablen durch ihre Werte, und sie verwandeln Escape-Sequenzen wie \n (Zeilenumbruch) und \t (Tabulator) in die Zeichen, für die sie stehen. Einfache Anführungszeichen geben den Text genau so aus, wie er geschrieben ist, außer \' und \\.

Verwende einfache Anführungszeichen für festen Text und doppelte, wenn eine Variable oder ein \n hinein soll. Der Geschwindigkeitsunterschied ist zu klein, um messbar zu sein, also nimm, was die Zeile lesbarer macht.

Strings mit . und .= verketten

.= hängt etwas an das Ende einer String-Variable an. So baut man üblicherweise in einer Schleife Text auf, zum Beispiel ein Stück HTML. Führe diesen Block aus, dann öffnet der Editor den Tab Page, der die gerenderte Liste zeigt.

Die Rangfolge spielt eine Rolle, wenn du . mit Rechnungen mischst. Seit PHP 8 binden + und - stärker als ., also ist "Sum: " . 2 + 3 gleich "Sum: 5". Klammern machen es für den nächsten Leser eindeutig: "Sum: " . (2 + 3).

Variablen, Arrays und Objekte in einen String setzen

Eine einfache Variable funktioniert in doppelten Anführungszeichen von allein. Für ein Array-Element, eine Kette von Objekteigenschaften oder einen Methodenaufruf setzt du den Ausdruck in geschweifte Klammern. Die Klammern trennen eine Variable außerdem von direkt folgenden Buchstaben.

Methoden funktionieren in den Klammern, normale Funktionen nicht: Die letzte Zeile gibt die Klammern und den Funktionsnamen um den Wert von $fruit herum aus. Rufe die Funktion vor dem String auf oder verwende sprintf, wenn der String viele Werte enthält.

Groß- und Kleinschreibung: strtoupper, strtolower, ucfirst, ucwords

Diese Funktionen arbeiten Byte für Byte und ändern nur die Buchstaben a bis z. Für Text mit Umlauten, Akzenten, Kyrillisch oder Griechisch verwendest du die Multibyte-Versionen, die UTF-8 verstehen:

Einzelne Zeichen lesen und Strings wiederholen

Ein String lässt sich wie ein Array indizieren. Negative Offsets zählen vom Ende. Zum Zählen von Zeichen siehe strlen.

Typischer Fehler: + statt .

In JavaScript verbindet + Strings. In PHP ist + immer Arithmetik: Numerische Strings werden als Zahlen addiert, und Text, der keine Zahl ist, wirft einen Fehler.

Wenn du eine Zahl siehst, wo du verbundenen Text erwartet hast, oder Unsupported operand types: string + string, such nach einem +, das ein . sein sollte.

Häufig gestellte Fragen

Wie verkettet man Strings in PHP?

Mit dem Punktoperator: $full = $first . ' ' . $last;. Um an einen bestehenden String anzuhängen, verwendest du .=: $html .= '<li>Item</li>';. Der Operator + ist für Zahlen, und "Hello" + "World" wirft in PHP 8 einen TypeError.

Was ist der Unterschied zwischen einfachen und doppelten Anführungszeichen in PHP?

Doppelte Anführungszeichen ersetzen Variablen und Escape-Sequenzen: "Hi $name\n" gibt den Wert von $name und einen Zeilenumbruch aus. Einfache Anführungszeichen geben fast alles wörtlich aus: 'Hi $name\n' gibt das Dollarzeichen, den Namen und einen Backslash gefolgt von n aus. In einfachen Anführungszeichen sind nur \' und \\ Escapes.

Wie setze ich einen Array-Wert in einen PHP-String?

Setze ihn in geschweifte Klammern: "Hello, {$user['name']}". Dasselbe funktioniert für Objekteigenschaften und Methodenaufrufe: "{$user->getName()}". Ohne Klammern funktioniert bei einem einfachen Schlüssel auch "$user[name]" (ohne Anführungszeichen um den Schlüssel).

Wie wandle ich einen String in PHP in Groß- oder Kleinbuchstaben um?

strtoupper('php') liefert PHP, strtolower('PHP') liefert php, ucfirst('hello') schreibt den ersten Buchstaben groß und ucwords('hello world') jedes Wort. Für Text mit Umlauten, Akzenten oder nicht lateinischen Buchstaben verwendest du mb_strtoupper() und mb_strtolower().

Illustration der Programmiersprachen bei Coddy

Lerne mit Coddy zu programmieren

LOS GEHT'S