Ho difficoltà a capire quando strtr
sarebbe preferibile a str_replace
o viceversa. Sembra che sia possibile ottenere gli stessi esatti risultati usando entrambe le funzioni, sebbene l'ordine in cui le sottostringhe vengono sostituite sia invertito. Ad esempio:Quando utilizzare 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');
Questo emette
YeXY XYring
YeZ Zring
YeXY XYring
YeZ Zring
parte sintassi, c'è qualche vantaggio di utilizzare uno sopra l'altro? Ogni caso in cui uno non sarebbe sufficiente per ottenere un risultato desiderato?
Dal punto di vista della leggibilità, 'strtr' potrebbe facilmente essere letto erroneamente come' strstr', che è piuttosto diverso. Sto iniziando a pensare di essere dislessico. Non commetteremo questo errore con str_replace. – Programster