Membetulkan Ralat Melepasi Null kepada Parameter yang Ditamatkan dalam PHP 8.1: Mengatasi Fungsi Terbina Dalam
PHP 8.1 telah menghentikan amalan menukar nol secara senyap parameter untuk mengosongkan rentetan dalam fungsi terbina dalam utama, seperti htmlspecialchars dan trim. Ini menimbulkan ralat untuk banyak pembangun.
Penyelesaian: Namakan Semula Fungsi Terbina Dalam
Satu penyelesaian yang dicadangkan ialah menamakan semula fungsi asal dan memperkenalkan fungsi pembungkus yang membuang input nol untuk mengosongkan rentetan. Walau bagaimanapun, fungsi rename_function() daripada sambungan apd PECL, sekali kaedah popular untuk menamakan semula fungsi, tidak lagi disokong.
Pendekatan Alternatif
1 . Operator Penggabungan Null
Pembetulan yang paling mudah ialah menggunakan operator penggabungan null (??'') untuk menentukan nilai lalai sekiranya input nol. Contohnya:
htmlspecialchars($something ?? '')
2. Fungsi Tersuai
Pilihan lain ialah mencipta fungsi tersuai, seperti nullable_htmlspecialchars(), dan menggantikan fungsi terbina dalam dengannya menggunakan cari-dan-ganti.
3. Fungsi Tersuai Ruang Nama
Untuk organisasi yang lebih baik, gunakan fungsi tersuai ruang nama, seperti nullableoverridehtmlspecialchars(), dan tambahkan pernyataan fungsi penggunaan pada permulaan setiap fail yang diperlukan.
4. Alat Analisis Statik
Alat seperti Rektor boleh mengautomasikan proses penambahan ??'' pada panggilan fungsi yang layak, mengurangkan beban kerja manual.
5. Cari-dan-Ganti Ungkapan Biasa
Kes mudah boleh dikendalikan menggunakan ungkapan biasa untuk menambah ??'' untuk fungsi panggilan.
Nota:
Perlu diingat bahawa PHP 8.1 hanya menafikan panggilan fungsi ini, bermakna ia belum lagi ralat. Pembangun mempunyai masa sehingga PHP 9.0 untuk menangani isu ini. Pertimbangkan untuk menghubungi penyelenggara perpustakaan jika anda menghadapi masalah dalam kod pihak ketiga.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Pemindahan Null kepada Parameter yang Dihentikan dalam PHP 8.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!