Wann sollten Sie „strtr' im Vergleich zu „str_replace' in PHP verwenden?

Barbara Streisand
Freigeben: 2024-11-05 00:04:01
Original
301 Leute haben es durchsucht

When should you use `strtr` versus `str_replace` in PHP?

Wann sollte strtr vs. str_replace verwendet werden?

Die Funktionen strtr und str_replace in PHP führen beide String-Ersetzungen durch, aber es gibt einige subtile Unterschiede zwischen ihrem Verhalten.

Erster Unterschied: Ersetzungsreihenfolge

strtr sortiert seine Ersetzungspaare nach Länge in absteigender Reihenfolge, während str_replace sie in der Reihenfolge verarbeitet, in der sie definiert sind . Dies kann zu unterschiedlichen Ergebnissen führen, wenn mehrere Teilzeichenfolgen innerhalb einer Zeichenfolge ersetzt werden. Betrachten Sie das folgende Beispiel:

<code class="php">$text = 'test string';

echo strtr($text, 'st', 'XY') . "\n";
echo str_replace(['s', 't', 'st'], ['X', 'Y', 'Z'], $text) . "\n";</code>
Nach dem Login kopieren

Dies wird ausgegeben:

YeXY XYring
YeXY XYring
Nach dem Login kopieren

Im ersten Fall ersetzt strtr zuerst die längere Teilzeichenfolge „st“, während im zweiten Fall str_replace ersetzt „s“ zuerst. Infolgedessen ist die endgültige Ausgabe unterschiedlich.

Zweiter Unterschied: Ersetzungspriorität

strtr gibt längeren Ersetzungspaaren eine höhere Priorität, während str_replace dem ersten Vorkommen Priorität einräumt eines Teilstrings. Dies kann auch beim Ersetzen mehrerer Teilzeichenfolgen zu unterschiedlichen Ergebnissen führen. Betrachten Sie das folgende Beispiel:

<code class="php">$text = 'ZBB2';
echo str_replace(['1', '2', '3', 'B'], ['A', 'B', 'C', 'D'], $text) . "\n";
echo strtr($text, ['1' => 'A', '2' => 'B', '3' => 'C', 'B' => 'D']) . "\n";</code>
Nach dem Login kopieren

Dies wird ausgegeben:

ZDDD
ZDDB
Nach dem Login kopieren

Im ersten Fall ersetzt str_replace zuerst „B“ durch „D“, was dann zu „BB2“ führt. wird durch „DD2“ ersetzt. Im zweiten Fall ersetzt strtr zuerst „B“ durch „D“, was dann dazu führt, dass „ZBB2“ durch „ZDDB“ ersetzt wird.

Wann soll welche Funktion verwendet werden

Im Allgemeinen eignet sich strtr besser für einfache String-Ersetzungen, bei denen die Reihenfolge der Ersetzungen keine Rolle spielt. str_replace hingegen eignet sich besser für komplexere Ersetzungen, bei denen die Reihenfolge der Ersetzungen wichtig ist oder Sie die Ersetzungspriorität steuern müssen.

Das obige ist der detaillierte Inhalt vonWann sollten Sie „strtr' im Vergleich zu „str_replace' in PHP verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage