Ich sehe eher zwei Anwendungsfälle.
Das ist richtig, aber mittlerweile sind - bis auf das von mir erwähnte detail - beide Funktionen ziemlich gleichwertig.
Das kann str_replace() nicht.
Doch, das kann es auch, nur muss man da die Zeichen als Array-Elemente übergeben.
Natürlich geht das auch mit str_replace() - aber das ist entspricht dann der anderen Variante von strtr() welches ebenfalls mit arrays gefüttert wird. Ich meinte mit "kann das nicht" lediglich, dass die bequeme Form eben nicht funktioniert
wenn man ä -> ae usw ersetzen möchte, kommt man um Arrays zum Füttern ohnehin nicht herum. Dann hat man (mit ausnahme der Performance) keinen nennenswerten Unterschie zwischen den beiden Funktionen.
Ach!? Eben schienst du nicht zu wissen, dass strtr() nicht nur Einzelzeichen bearbeitet und nun sprichst du doch von "Ersetzen von Zeichenketten"?
Eh klar ;) der Schein hat getrügt.
Wenn du wirklich davon ausgehst, einzelne Zeichen zu ersetzen, so ist str_replace() nicht mit strtr() vergleichbar, denn es berücksichtigt beim Abarbeiten des Suchstring-Arrays bereits eingesetzte Teile nicht, strtr() hingegen schon.
Erwischt, das wusste ich nicht.
Mit "Zeichenketten" meinte ich aber eher Geschichten wie ae -> æ :)