ฉันมีปัญหาในการทำความเข้าใจว่าเมื่อ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