Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah kod PHP saya menghasilkan amaran \'Call-Time Pass-by-Reference is Deprecated\' dan bagaimana saya boleh membetulkannya?

Mengapakah kod PHP saya menghasilkan amaran \'Call-Time Pass-by-Reference is Deprecated\' dan bagaimana saya boleh membetulkannya?

DDD
DDDasal
2024-12-15 19:28:11493semak imbas

Why is my PHP code generating

Amaran: Rujukan Laluan Masa Panggilan PHP Ditamatkan

Amaran "Rujukan pas-by-masa panggilan telah ditamatkan" menunjukkan penggunaan pendekatan lapuk untuk menghantar pembolehubah sebagai rujukan dalam panggilan fungsi. Mari kita terokai punca dan penyelesaiannya.

Dalam PHP, pembolehubah boleh diluluskan mengikut nilai atau rujukan. Melepasi nilai mencipta salinan pembolehubah yang tidak boleh diubah suai di luar fungsi, manakala lulus melalui rujukan membenarkan fungsi mengubah suai pembolehubah asal itu sendiri.

Dalam versi PHP yang lebih lama, "laluan masa panggilan -by-reference" dibenarkan mensimulasikan hantaran rujukan tanpa menggunakan operator & secara eksplisit. Teknik ini melibatkan menghantar pembolehubah dengan & dalam panggilan fungsi, seperti not_modified(&$x). Walau bagaimanapun, amalan ini telah ditamatkan dalam PHP moden dan tidak boleh digunakan.

Selain itu, dalam PHP 4 dan lebih awal, mengubah suai sifat objek diperlukan melalui objek melalui rujukan (menggunakan &$obj). Walau bagaimanapun, ini tidak lagi diperlukan atau disyorkan dalam PHP moden. Objek sentiasa diluluskan melalui rujukan secara tersirat, membenarkan pengubahsuaian walaupun diluluskan "mengikut nilai."

Oleh itu, untuk menyelesaikan amaran, alih keluar & daripada semua rujukan dalam kod anda. Ini termasuk mengalih keluar & daripada semua kejadian &$ini, kerana ia tidak perlu dan boleh dialih keluar sepenuhnya. Dengan mengikuti pengesyoran ini, anda akan menghapuskan amaran dan memastikan keserasian dengan versi PHP moden.

Atas ialah kandungan terperinci Mengapakah kod PHP saya menghasilkan amaran \'Call-Time Pass-by-Reference is Deprecated\' dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn