Fungsi preg_replace_callback menawarkan alternatif kepada pengubah /eplace() dalam preg_re , menyediakan fleksibiliti dan keselamatan yang dipertingkatkan. Untuk memahami peralihan ini, mari kita terokai tujuan dan penggunaan pengubahsuaian ini.
Dalam ungkapan biasa, rujukan belakang digunakan untuk mengakses bahagian yang ditangkap daripada rentetan yang dipadankan. Rujukan belakang 2 merujuk kepada bahagian yang ditangkap kedua, selalunya dilambangkan dengan ([a-z]) dalam contoh anda. Ia membolehkan anda memanipulasi nilai yang ditangkap dalam rentetan gantian.
preg_replace_callback meningkatkan kefungsian preg_replace() dengan menggunakan panggilan semula. fungsi bukannya pengubah suai /e. Fungsi panggil balik ini menerima tatasusunan yang mengandungi rujukan balik yang dipadankan sebagai hujahnya.
Untuk memindahkan kod sedia ada anda, anda boleh menukar rentetan gantian /e kepada fungsi panggil balik tanpa nama seperti jadi:
Menjadi:
di mana $matches[2] sepadan dengan 2 dalam ungkapan asal.
Perhatikan bahawa $matches hanyalah nama parameter untuk fungsi panggil balik; anda boleh memilih nama yang berbeza secara bebas. Selain itu, anda boleh menggunakan fungsi bernama atau Sintaks Boleh Panggil Kelas Pertama, seperti yang dijelaskan dalam jawapan yang disediakan.
Dalam fungsi panggil balik, anda tidak boleh mengakses pembolehubah dari skop sekeliling. Untuk mengatasinya, anda boleh menggunakan kata kunci penggunaan dalam fungsi tanpa nama untuk mengimport pembolehubah yang diperlukan.
Dengan mengikuti garis panduan ini, anda boleh dengan lancar pindahkan kod preg_replace() anda kepada fungsi preg_replace_callback yang lebih moden dan serba boleh.
Atas ialah kandungan terperinci Bagaimana untuk Berhijrah dengan Selamat daripada `preg_replace()`'s `/e` Modifier kepada `preg_replace_callback()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!