Ralat Pemindahan Null ke Parameter yang Ditamatkan dalam PHP 8.1: Penyelesaian Alternatif
PHP 8.1 telah memperkenalkan amaran penamatan untuk menghantar parameter nol kepada teras tertentu fungsi. Perubahan ini bertujuan untuk tidak menggalakkan penukaran senyap nol kepada rentetan kosong. Akibatnya, fungsi seperti htmlspecialchars() dan trim() tidak lagi menukar null secara automatik kepada rentetan kosong.
Daripada menamakan semula fungsi terbina dalam, yang tidak lagi boleh dilaksanakan, beberapa penyelesaian alternatif wujud:
1. Gunakan Null Coalescing Operator (??)
Null Coalescing Operator (??) boleh digunakan untuk memberikan nilai lalai apabila null ditemui. Contohnya, htmlspecialchars($something) boleh diubah suai kepada htmlspecialchars($something ?? ''). Ini memastikan rentetan kosong dikembalikan apabila nol dilalui.
2. Cipta Fungsi Tersuai
Fungsi nullable tersuai boleh dibuat untuk mengendalikan isu ini. Sebagai contoh, seseorang boleh mencipta fungsi nullable_htmlspecialchars() dan melakukan operasi cari dan ganti yang mudah dalam pangkalan kod.
3. Fungsi Tersuai Ruang Nama
Fungsi tersuai boleh diruang nama untuk mengatasi fungsi terbina dalam. Dengan memasukkan penyataan use function namespacefunction_name dalam setiap fail, fungsi yang ditindih akan digunakan dan bukannya yang terbina dalam.
4. Automasi dengan Rektor
Rektor menyediakan alat pemindahan kod yang boleh mengautomasikan penambahan operator penggabungan nol kepada panggilan fungsi yang layak.
5. Cari-dan-Ganti Ungkapan Biasa
Untuk kes mudah, operasi cari-dan-ganti berasaskan ungkapan biasa mungkin mencukupi untuk menambah operator penggabungan nol.
Nota : PHP 8.1 hanya menghentikan panggilan ini tetapi tidak menukarnya kepada ralat. Tempoh tangguh ini memberi masa kepada pembangun untuk membetulkan kod yang terjejas sebelum PHP 9.0 dikeluarkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat Pemindahan Null kepada Parameter yang Dihentikan dalam PHP 8.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!