Memahami Ralat "Tidak Boleh Melepasi Parameter 2 melalui Rujukan" PHP
Dalam PHP, menghantar parameter melalui rujukan membenarkan perubahan dibuat pada pembolehubah yang diluluskan kepada dicerminkan dalam pembolehubah asal. Walau bagaimanapun, jika parameter dijangka akan diluluskan melalui rujukan tetapi tidak, ia boleh mengakibatkan ralat "Tidak boleh lulus parameter 2 melalui rujukan".
Senario Ralat Khusus: KEMASKINI Pertanyaan dengan Perbandingan Tarikh
Pertimbangkan kod PHP berikut:
$selectedDate = date('d-m-Y', ($createDate)); $sql = "UPDATE Session SET Active = ? WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= ?"; $update = $mysqli->prepare($sql); $update->bind_param("is", 0, $selectedDate); // Line 13
Dalam ini contoh, Baris 13 cuba untuk mengikat dua parameter pada pernyataan yang disediakan:
Walau bagaimanapun, parameter kedua dijangka menjadi rujukan kepada pembolehubah, ditunjukkan oleh "s" dalam rentetan jenis "is". Memandangkan ia tidak diluluskan melalui rujukan, ralat "Tidak boleh lulus parameter 2 melalui rujukan" dilemparkan.
Penyelesaian: Melepasi Rujukan Pembolehubah
Untuk menyelesaikan ralat ini, lulus rujukan pembolehubah kepada parameter kedua, seperti ditunjukkan di bawah:
$isActive = 0; $update->bind_param("is", $isActive, $selectedDate);
Dengan menghantar $isActive dengan rujukan, perubahan yang dibuat kepadanya dalam pernyataan yang disediakan akan ditunjukkan dalam pembolehubah asal.
Memahami Rujukan dalam PHP
Untuk mendapatkan maklumat lanjut tentang rujukan dalam PHP, anda boleh merujuk kepada dokumentasi berikut: http://php.net/manual/en/language.references.pass.php.
Atas ialah kandungan terperinci Mengapa Kod PHP Saya Membuang Ralat 'Tidak Boleh Melepasi Parameter 2 dengan Rujukan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!