Rumah >pembangunan bahagian belakang >tutorial php >strtr vs str_replace: Bila hendak menggunakan Mana untuk Penggantian Rentetan?

strtr vs str_replace: Bila hendak menggunakan Mana untuk Penggantian Rentetan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 22:04:02366semak imbas

strtr vs str_replace: When to Use Which for String Replacements?

Bila Menggunakan strtr vs str_replace

Fungsi PHP strtr dan str_replace kedua-duanya melakukan penggantian rentetan, tetapi perbezaan utama wujud dalam tingkah laku mereka.

Perbezaan Utama:

  • Isih Kunci: strtr mengisih rentetan cariannya mengikut panjang dalam tertib menurun, manakala str_replace memproses kekunci dalam susunan ia ditakrifkan.
  • Tertib Gantian: strtr menggantikan rentetan padanan terbesar dahulu, manakala str_replace menggantikan kekunci secara berurutan.

Contoh:

Pertimbangkan kod berikut:

<code class="php">$text = "PHP: Hypertext Preprocessor";
$arr = array("PHP" => "PHP: Hypertext Preprocessor", "PHP: Hypertext Preprocessor" => "PHP");

$text_strtr = strtr($text, $arr);
$text_str_replace = str_replace(array_keys($arr), array_values($arr), $text);</code>
  • strtr akan mengisih kekunci mengikut panjang dan menggantikan "PHP: Hypertext Preprocessor" dengan "PHP" terlebih dahulu, dengan berkesan mengembalikan teks kepadanya nilai asal.
  • str_replace akan menggantikan "PHP" dengan "PHP: Hypertext Preprocessor" dan kemudian menggantikan "PHP: Hypertext Preprocessor" dengan "PHP," menghasilkan hasil yang berbeza: "PHP: Hypertext Preprocessor."

Bila Menggunakan str_replace:

    Gunakan str_replace apabila susunan khusus penggantian kunci adalah penting.

Atas ialah kandungan terperinci strtr vs str_replace: Bila hendak menggunakan Mana untuk Penggantian Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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