Maison > Article > développement back-end > Quand devriez-vous utiliser `strtr` plutôt que `str_replace` en PHP ?
Les fonctions strtr et str_replace en PHP effectuent toutes deux des remplacements de chaînes, mais il existe quelques différences subtiles entre leur comportement.
Première différence : ordre de remplacement
strtr trie ses paires de remplacement par longueur dans l'ordre décroissant, tandis que str_replace les traite dans l'ordre dans lequel elles sont définies . Cela peut conduire à des résultats différents lors du remplacement de plusieurs sous-chaînes dans une chaîne. Prenons l'exemple suivant :
<code class="php">$text = 'test string'; echo strtr($text, 'st', 'XY') . "\n"; echo str_replace(['s', 't', 'st'], ['X', 'Y', 'Z'], $text) . "\n";</code>
Cela affichera :
YeXY XYring YeXY XYring
Dans le premier cas, strtr remplace d'abord la sous-chaîne la plus longue "st", tandis que dans le second cas, str_replace remplace "s" en premier. En conséquence, le résultat final est différent.
Deuxième différence : priorité de remplacement
strtr donne une priorité plus élevée aux paires de remplacement plus longues, tandis que str_replace donne la priorité à la première occurrence. d'une sous-chaîne. Cela peut également conduire à des résultats différents lors du remplacement de plusieurs sous-chaînes. Prenons l'exemple suivant :
<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>
Cela affichera :
ZDDD ZDDB
Dans le premier cas, str_replace remplace d'abord "B" par "D", ce qui mène ensuite à "BB2" étant remplacé par "DD2". Dans le second cas, strtr remplace d'abord "B" par "D", ce qui conduit ensuite au remplacement de "ZBB2" par "ZDDB".
Quand utiliser quelle fonction
En général, strtr est mieux adapté aux remplacements de chaînes simples où l'ordre des remplacements n'est pas important. str_replace, en revanche, est mieux adapté aux remplacements plus complexes où l'ordre des remplacements est important ou où vous devez contrôler la priorité de remplacement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!