Bilakah anda harus menggunakan `strtr` berbanding `str_replace` dalam PHP?

Barbara Streisand
Lepaskan: 2024-11-05 00:04:01
asal
251 orang telah melayarinya

When should you use `strtr` versus `str_replace` in PHP?

Bila Menggunakan strtr vs str_replace?

Fungsi strtr dan str_replace dalam PHP kedua-duanya melakukan penggantian rentetan, tetapi terdapat beberapa perbezaan halus antara tingkah laku mereka.

Perbezaan Pertama: Perintah Penggantian

strtr menyusun pasangan gantiannya mengikut panjang dalam tertib menurun, manakala str_replace memprosesnya mengikut tertib yang ditentukan . Ini boleh membawa kepada hasil yang berbeza apabila menggantikan berbilang subrentetan dalam rentetan. Pertimbangkan contoh berikut:

<code class="php">$text = 'test string';

echo strtr($text, 'st', 'XY') . "\n";
echo str_replace(['s', 't', 'st'], ['X', 'Y', 'Z'], $text) . "\n";</code>
Salin selepas log masuk

Ini akan mengeluarkan:

YeXY XYring
YeXY XYring
Salin selepas log masuk

Dalam kes pertama, strtr menggantikan subrentetan yang lebih panjang "st" dahulu, manakala dalam kes kedua, str_replace menggantikan "s" dahulu. Akibatnya, keluaran akhir adalah berbeza.

Perbezaan Kedua: Keutamaan Penggantian

strtr memberi keutamaan yang lebih tinggi kepada pasangan gantian yang lebih lama, manakala str_replace memberi keutamaan kepada kejadian pertama daripada subrentetan. Ini juga boleh membawa kepada hasil yang berbeza apabila menggantikan berbilang subrentetan. Pertimbangkan contoh berikut:

<code class="php">$text = 'ZBB2';
echo str_replace(['1', '2', '3', 'B'], ['A', 'B', 'C', 'D'], $text) . "\n";
echo strtr($text, ['1' => 'A', '2' => 'B', '3' => 'C', 'B' => 'D']) . "\n";</code>
Salin selepas log masuk

Ini akan mengeluarkan:

ZDDD
ZDDB
Salin selepas log masuk

Dalam kes pertama, str_replace menggantikan "B" dengan "D" dahulu, yang kemudiannya membawa kepada "BB2" digantikan dengan "DD2". Dalam kes kedua, strtr menggantikan "B" dengan "D" dahulu, yang kemudiannya membawa kepada "ZBB2" digantikan dengan "ZDDB".

Bila Gunakan Fungsi Mana

Secara amnya, strtr lebih sesuai untuk penggantian rentetan ringkas di mana susunan penggantian tidak penting. str_replace, sebaliknya, lebih sesuai untuk penggantian yang lebih kompleks di mana susunan penggantian adalah penting atau di mana anda perlu mengawal keutamaan penggantian.

Atas ialah kandungan terperinci Bilakah anda harus menggunakan `strtr` berbanding `str_replace` dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!