Saya akhirnya dapat mengemas kini pemasangan PHP saya daripada 7.2 kepada 7.4 (bercadang untuk mengemas kini terus kepada versi semasa, tetapi melakukannya dalam langkah-langkah) dan saya mendapat ralat pelik apabila saya menjalankan skrip sedia ada:
Mesej: Cuba untuk mengakses array ofset pada nilai jenis null
Baris yang muncul hanya mengisi tatasusunan daripada set hasil mysql mudah.
for($i = 0; $resultArray[$i] = mysqli_fetch_row($result)[0]; $i++) ;
Skrip masih berjalan dengan baik, tetapi saya tidak menyukai sebarang ralat. Saya keliru mengapa perkara ini berlaku dan telah mencari selama berjam-jam tetapi tidak berjaya. Mengapa ralat ini berlaku? Adakah terdapat cara untuk melakukan operasi yang sama tanpa ralat?
Mengikut dokumentasi, sebaik sahaja penghujung set keputusan dicapai,
mysqli_fetch_row
将返回null
.Anda boleh menggunakan
foreach
gelung. Saya tidak mengesyorkannya, tetapi ia adalah penyelesaian yang mungkin.Anda benar-benar tidak perlu menggunakan peranti pelik ini. Anda boleh menggunakan array_column() untuk operasi yang lebih mudah.
mysqli_fetch_row
将在某个时刻返回null
(mengikut dokumentasi, ia sentiasa melakukan ini apabila kehabisan baris untuk diambil). Tetapi anda tidak menyemaknya sebelum cuba membaca indeks ke-0nya, jadi anda mendapat ralat.Ramai orang menggunakan gaya ini untuk mendapatkan semula baris:
Ini akan mengelakkan masalah seperti itu. Ini juga cara anda sering melihatnya dilakukan dalam contoh dan dokumentasi.