Мне трудно понять, когда strtr
предпочтительнее 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');
Это выводит
YeXY XYring
YeZ Zring
YeXY XYring
YeZ Zring
Помимо синтаксиса, есть ли какие-либо преимущества в использовании одного над другим? Были ли случаи, когда одного было бы недостаточно для достижения желаемого результата?
strtr
можно легко принять заstrstr
, что сильно отличается. Я начинаю думать, что у меня дислексия. Не совершите эту ошибку с помощью str_replace. - person Programster   schedule 23.08.2015