W3docs

PHP Strings: Ein ausführlicher Leitfaden

Tauchen Sie tief in die Welt der PHP-Strings ein und entdecken Sie alle Funktionen. PHP-Strings sind ein grundlegender Bestandteil der PHP-Programmierung.

Ein String ist eine Zeichenfolge, die zum Speichern und Verarbeiten von Text verwendet wird — Namen, Nachrichten, HTML, JSON, Dateiinhalte und vieles mehr. Strings sind einer der grundlegenden Datentypen in PHP, und fast jedes PHP-Programm arbeitet mit ihnen. Dieser Leitfaden erklärt, wie man Strings erstellt, den entscheidenden Unterschied zwischen einfachen und doppelten Anführungszeichen, Verkettung, den Zugriff auf einzelne Zeichen, die nützlichsten eingebauten Funktionen, Escape-Sequenzen sowie die mehrzeiligen Heredoc- und Nowdoc-Syntaxen — mit ausführbaren Beispielen.

Was ist ein PHP-String?

Ein String ist Text in Anführungszeichen, der in einer Variablen gespeichert wird. PHP bietet vier Möglichkeiten, einen String zu schreiben: einfache Anführungszeichen, doppelte Anführungszeichen, Heredoc und Nowdoc. Die beiden Anführungszeichenstile sind die am häufigsten verwendeten:

<?php
$single = 'Hello World';
$double = "Hello World";

echo $single; // Hello World
echo "\n";
echo $double; // Hello World

Strings haben keine feste Längenbeschränkung außer dem verfügbaren Arbeitsspeicher, sodass ein String ein einzelnes Zeichen oder ein ganzes Dokument enthalten kann.

Einfache vs. doppelte Anführungszeichen

Dies ist der wichtigste Unterschied, den man frühzeitig lernen sollte, da die Wahl des falschen Anführungszeichenstils eine häufige Fehlerquelle ist. Doppelte Anführungszeichen verarbeiten Escape-Sequenzen und interpolieren Variablen; einfache Anführungszeichen behandeln fast alles wörtlich.

<?php
$name = 'Alice';

echo "Hello $name\n"; // Hello Alice  (variable + newline parsed)
echo 'Hello $name\n'; // Hello $name\n  (printed literally)

Wenn die Variable direkt an andere Zeichen angrenzt, umschließen Sie sie mit geschweiften Klammern, damit PHP weiß, wo der Name endet:

<?php
$item = 'book';

echo "I bought 3 {$item}s\n"; // I bought 3 books

Einfache Anführungszeichen sind geringfügig schneller und sicherer, wenn keine Interpolation benötigt wird — bevorzugen Sie sie für festen Text. Verwenden Sie doppelte Anführungszeichen (oder Heredoc), wenn Sie Variablen oder Escape-Sequenzen einbetten möchten.

String-Verkettung

Das Zusammenfügen von Strings zu einem einzigen wird als Verkettung bezeichnet. PHP verwendet den Punkt (.) als Operator, und .= fügt an einen bestehenden String an:

<?php
$first = 'Hello';
$last  = 'World';

$greeting = $first . ' ' . $last;
echo $greeting; // Hello World

$greeting .= '!';
echo "\n" . $greeting; // Hello World!

Beachten Sie, dass PHP . für die Verkettung verwendet, nicht + — die Verwendung von + bei zwei Strings versucht eine numerische Addition und ist fast nie das, was man möchte.

Zugriff auf Zeichen

Ein String verhält sich wie ein Array von Zeichen. Sie können jedes Zeichen über seinen nullbasierten Index mit eckigen Klammern lesen:

<?php
$word = 'PHP';

echo $word[0];  // P
echo $word[2];  // P
echo $word[-1]; // P  (negative index counts from the end)

Um die Länge des Strings zu ermitteln, verwenden Sie strlen:

<?php
echo strlen('Hello World'); // 11 (the space counts)

Häufig verwendete String-Funktionen

PHP verfügt über eine umfangreiche Bibliothek von String-Funktionen. Hier sind die am häufigsten verwendeten, jeweils mit einem Link zu einem eigenen Kapitel:

FunktionZweck
strlenLänge eines Strings (in Bytes)
strposPosition des ersten Vorkommens eines Teilstrings
str_replaceAlle Vorkommen eines Teilstrings ersetzen
strtoupper / strtolowerGroß-/Kleinschreibung ändern
substrTeil eines Strings extrahieren
trimLeerzeichen von beiden Enden entfernen
explode / implodeZwischen Strings und arrays konvertieren
sprintfEinen String aus einer Vorlage formatieren

Ein kurzer Überblick:

<?php
$text = '  The quick brown fox  ';

echo strlen($text);                  // 23
echo "\n";
echo strpos($text, 'quick');         // 6
echo "\n";
echo str_replace('quick', 'slow', trim($text)); // The slow brown fox
echo "\n";
echo strtoupper(trim($text));        // THE QUICK BROWN FOX
echo "\n";
echo substr(trim($text), 0, 3);      // The

sprintf erstellt einen String aus einer Vorlage, was für Zahlen und Auffüllung praktisch ist:

<?php
$price = 9.5;
echo sprintf('Total: $%.2f', $price); // Total: $9.50

Arbeiten mit Unicode

Standardfunktionen wie strlen und strpos zählen Bytes, keine Zeichen. Für Text mit Akzentbuchstaben, Emoji oder nicht-lateinischen Schriften verwenden Sie die Mehrbyte-Äquivalente mb_* aus der mbstring-Erweiterung, damit Mehrbyte-Zeichen korrekt gezählt werden:

<?php
$word = 'café';

echo strlen($word);    // 5  (é is 2 bytes in UTF-8)
echo "\n";
echo mb_strlen($word); // 4  (correct character count)

Escape-Sequenzen

In doppelt angeführten Strings leitet ein Backslash eine Escape-Sequenz ein — eine Möglichkeit, Zeichen zu schreiben, die schwer einzugeben sind oder die andernfalls geparst würden. Die gebräuchlichsten:

SequenzBedeutung
\nZeilenumbruch
\tTabulator
\"Wörtliches doppeltes Anführungszeichen
\\Wörtlicher Backslash
\$Wörtliches Dollarzeichen (Interpolation unterdrücken)
<?php
echo "Line 1\nLine 2";       // prints on two lines
echo "\n";
echo "Price: \$5";           // Price: $5
echo "\n";
echo "She said \"hello\"";   // She said "hello"

Einfach angeführte Strings erkennen nur \' (ein wörtliches Anführungszeichen) und \\; alles andere, einschließlich \n, wird wörtlich ausgegeben.

Heredoc und Nowdoc

Wenn Sie einen langen, mehrzeiligen String benötigen, sind Heredoc und Nowdoc sauberer als das manuelle Escapen von Zeilenumbrüchen.

Heredoc verhält sich wie ein doppelt angeführter String: Variablen werden interpoliert und Escape-Sequenzen funktionieren. Öffnen Sie ihn mit <<< gefolgt von einem Bezeichner und schließen Sie ihn mit demselben Bezeichner in einer eigenen Zeile:

<?php
$name = 'Alice';

$message = <<<EOT
Dear $name,
Welcome aboard!
EOT;

echo $message;
// Dear Alice,
// Welcome aboard!

Nowdoc verhält sich wie ein einfach angeführter String — keine Interpolation, kein Escape-Parsing. Der einzige syntaktische Unterschied besteht darin, dass der öffnende Bezeichner in einfache Anführungszeichen eingeschlossen wird:

<?php
$name = 'Alice';

$message = <<<'EOT'
Dear $name,
Welcome aboard!
EOT;

echo $message;
// Dear $name,
// Welcome aboard!

Verwenden Sie Heredoc für vorlagenbasierte Ausgaben (E-Mails, HTML-Blöcke) und Nowdoc, wenn der Text exakt so bleiben soll, wie er geschrieben wurde.

Zusammenfassung

PHP-Strings sind das Grundgerüst für die Arbeit mit Text. Die wichtigsten Punkte:

  • Verwenden Sie einfache Anführungszeichen für wörtlichen Text und doppelte Anführungszeichen (oder Heredoc), wenn Sie Variableninterpolation oder Escape-Sequenzen benötigen.
  • Verketten Sie mit dem .-Operator, nicht mit +.
  • Greifen Sie auf eingebaute Funktionen wie strlen, substr, str_replace und explode zurück, anstatt sie neu zu erfinden.
  • Verwenden Sie die mb_*-Funktionen, wenn Text möglicherweise Nicht-ASCII-Zeichen enthält.

Lernen Sie als nächstes, wie man Strings und andere Werte mit echo und print ausgibt, oder erkunden Sie PHP-Zahlen und -Arrays.

Übungen

Übung
Welche der folgenden Aussagen über PHP-Strings sind korrekt?
Welche der folgenden Aussagen über PHP-Strings sind korrekt?
Was this page helpful?