Membetulkan PHP 5.4 Isu Rujukan Laluan Masa Panggilan
Pengenalan PHP 5.4 menandakan penyingkiran pas masa panggilan- rujukan sampingan, mengakibatkan ralat "Rujukan pas-masa panggilan telah dialih keluar" yang digeruni. Ralat ini berlaku apabila pembolehubah dihantar ke dalam fungsi sebagai rujukan dalam kod warisan.
Mudah Betulkan atau Selesaikan Tulis Semula?
Tiada penyelesaian mudah untuk isu ini. Masalahnya berpunca daripada cara rujukan diisytiharkan dalam definisi fungsi, bukan panggilan fungsi. Dokumentasi PHP menyatakan bahawa "Tiada tanda rujukan pada panggilan fungsi - hanya pada definisi fungsi."
Tulis Semula Kod Legasi
Sejak PHP mula mengeluarkan ralat penamatan untuk panggilan -rujukan berlalu masa dalam versi 5.3, adalah sangat disyorkan untuk menulis semula kod warisan untuk mengelakkan potensi masalah keserasian dalam masa hadapan.
Contoh Tulis Semula
Daripada:
// Wrong way! myFunc(&$arg); // Deprecated pass-by-reference argument function myFunc($arg) { }
Gunakan:
// Right way! myFunc($arg); // pass-by-value argument function myFunc(&$arg) { }
Dengan mengisytiharkan rujukan dalam fungsi definisi, anda memastikan bahawa PHP akan lulus hujah dengan rujukan tanpa memerlukan sintaks yang tidak digunakan dalam fungsi panggilan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan Ralat PHP 5.4 \'Rujukan Laluan Masa Panggilan telah dialih keluar\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!