Me está costando entender cuándo strtr
sería preferible a str_replace
o viceversa. Parece que es posible obtener exactamente los mismos resultados utilizando cualquiera de las funciones, aunque se invierte el orden en que se reemplazan las subcadenas. Por ejemplo:Cuándo usar strtr vs str_replace?
echo strtr('test string', 'st', 'XY')."\n";
echo strtr('test string', array('s' => 'X', 't' => 'Y', 'st' => 'Z'))."\n";
echo str_replace(array('s', 't', 'st'), array('X', 'Y', 'Z'), 'test string')."\n";
echo str_replace(array('st', 't', 's'), array('Z', 'Y', 'X'), 'test string');
Esto da salida a
YeXY XYring
YeZ Zring
YeXY XYring
YeZ Zring
Aparte de sintaxis, ¿hay algún beneficio de usar uno sobre el otro? ¿Algún caso donde uno no sería suficiente para lograr un resultado deseado?
Desde el punto de vista de legibilidad, 'strtr' fácilmente podría interpretarse erróneamente como' strstr' que es bastante diferente. Estoy empezando a pensar que soy disléxico. No cometerá ese error con str_replace. – Programster