Menyelesaikan PHP 5.4 Call-Time Pass-by-Reference Issue
Mesej ralat yang menunjukkan "PHP Fatal error: Call-time pass- rujukan sampingan telah dialih keluar" sering berlaku apabila menghantar pembolehubah dengan merujuk kepada fungsi dalam PHP lama kod.
Perihalan Masalah:
Isu ini timbul akibat penamatan rujukan pas-demi masa panggilan dalam PHP 5.3 dan seterusnya. Sebelum ini, anda boleh menghantar pembolehubah melalui rujukan dengan menggunakan simbol ampersand "&" semasa panggilan fungsi. Walau bagaimanapun, PHP versi 5.4 telah mengalih keluar ciri ini, memerlukan pengisytiharan eksplisit rujukan lulus dalam definisi fungsi.
Penyelesaian:
Untuk menyelesaikan isu ini, adalah penting untuk mengisytiharkan panggilan melalui rujukan dalam definisi fungsi itu sendiri, bukannya semasa fungsi panggil.
Contoh:
Daripada menggunakan kod berikut:
// Deprecated myFunc(&$arg); function myFunc($arg) { // ... }
Anda harus menulis semula sebagai:
// Correct myFunc($var); function myFunc(&$arg) { // ... }
Nota Penting:
Walaupun mungkin menarik untuk kekal dengan warisan pendekatan pas-demi-rujukan masa panggilan untuk mengelakkan penulisan semula kod, adalah sangat disyorkan untuk mengemas kini kod anda agar sepadan dengan pengesyoran PHP. Ini bukan sahaja memastikan keserasian dengan versi PHP yang lebih baharu tetapi juga menghapuskan potensi amaran penamatan dan ralat pada masa hadapan.
Atas ialah kandungan terperinci Bagaimanakah Saya Membetulkan Ralat \'Rujukan Laluan Masa Panggilan Telah Dialih Keluar\' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!