Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

strtr() ne fait qu’une seule passe

<?php

$map = [
    'foo' => 'bar',
    'foobar' => 'foo',
];

$input = 'foobar and foo';

echo str_replace(array_keys($map), array_values($map), $input);
// Output: 'bar bar and bar'

echo strtr($input, $map);
// Output: 'baz and bar'

strtr() remplace des chaînes à l’intérieur d’une chaîne, tout comme str_replace().

Les deux fonctions fonctionnent aussi bien avec une chaîne qu’avec un tableau de chaînes en argument, ce qui est pratique quand on doit remplacer plusieurs chaînes distinctes et non chevauchantes.

En termes de lisibilité, strtr() accepte un hash avec des chaînes original => remplacement, alors que str_replace() les demande séparées et alignées.

Enfin, strtr() ne fait qu’une seule passe sur la chaîne, et remplace la chaîne disponible la plus longue. Pas besoin de trier les chaînes d’origine par taille, ni de risquer que la chaîne remplacée soit utilisée plusieurs fois. C’est en réalité plus efficace et plus prévisible.

See Also

PHP Features

Last updated: 11 October 2026