Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menggantikan Pengubahsuai `/e` PHP yang Dihentikan dengan Selamat dalam `preg_replace` dengan `preg_replace_callback`?

Bagaimanakah Saya Boleh Menggantikan Pengubahsuai `/e` PHP yang Dihentikan dengan Selamat dalam `preg_replace` dengan `preg_replace_callback`?

DDD
Lepaskan: 2024-12-27 12:35:11
asal
702 orang telah melayarinya

How Can I Safely Replace PHP's Deprecated `/e` Modifier in `preg_replace` with `preg_replace_callback`?

Melepaskan diri daripada Pengubah suai dengan preg_replace_callback

Cabaran:

Pengubah suai ungkapan biasa, seperti /e, ditamatkan dalam PHP . Ini memberikan cabaran apabila cuba menggantikan pengubah suai /e dalam kod berikut dengan preg_replace_callback alternatif:

public static function camelize($word) {
   return preg_replace('/(^|_)([a-z])/e', 'strtoupper("\2")', $word);
}
Salin selepas log masuk

Memahami Rujukan Balik:

The /e pengubah suai menggantikan garis miring ke belakang dengan nombor (1) untuk mewakili bahagian yang ditangkap pada rentetan yang dipadankan. Contohnya, dalam ungkapan yang diberikan (^|_)([a-z]), tangkapan pertama ialah (^|_) dan yang kedua ialah ([a-z]).

Alternatif preg_replace_callback:

preg_replace_callback mengambil fungsi panggil balik yang menerima tatasusunan subcorak yang ditangkap sebagai hujah. Subcorak pertama adalah pada indeks 0, kedua pada indeks 1 dan seterusnya.

Memohon pada Kod:

Untuk menggantikan pengubah suai /e, kita perlu untuk menukar rentetan gantian kepada fungsi tanpa nama:

function($m) { return strtoupper($m[2]); }
Salin selepas log masuk

Fungsi ini mengambil tatasusunan padanan $m dan mengembalikan yang kedua subcorak yang ditangkap ditukar kepada huruf besar.

Menggabungkan Semuanya:

Kod akhir menjadi:

public static function camelize($word) {
   return preg_replace_callback('/(^|_)([a-z])/', function($m) { return strtoupper($m[2]); }, $word);
}
Salin selepas log masuk

Pertimbangan Tambahan:

  • Alih keluar pengubah suai /e daripada ungkapan biasa corak.
  • Pertimbangkan menggunakan kumpulan tangkap bernama ((?Pcorak)) untuk lebih banyak hujah panggil balik yang boleh dibaca.
  • Berhati-hati dengan skop pembolehubah dan gunakan kata kunci penggunaan untuk mengakses pembolehubah luaran dalam panggilan balik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Pengubahsuai `/e` PHP yang Dihentikan dengan Selamat dalam `preg_replace` dengan `preg_replace_callback`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan