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
630 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!

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