Трудно ми е да разбера кога 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