Ralat Maut: Memahami [] Ralat Operator untuk Rentetan
Apabila bekerja dengan tatasusunan dan rentetan dalam PHP, adalah penting untuk memahami penggunaan daripada pengendali []. Percubaan untuk menggunakan operator ini pada rentetan boleh mengakibatkan ralat: "Ralat maut: [] operator tidak disokong untuk rentetan."
Punca Ralat:
Ralat ini berlaku kerana pengendali [] digunakan untuk memanipulasi tatasusunan. Ia tidak dibenarkan menggunakannya pada rentetan. Apabila anda cuba memberikan nilai kepada tatasusunan menggunakan operator [], anda cuba mencipta atau mengubah suai elemen tatasusunan. Walau bagaimanapun, rentetan bukan bekas seperti tatasusunan dan tidak boleh dimanipulasi dengan cara yang sama.
Penerangan Masalah:
Dalam kod yang disediakan, isu timbul apabila anda cuba untuk simpan maklumat yang diubah suai ke pangkalan data menggunakan pembolehubah $wrotesql. Anda cuba untuk menetapkan tatasusunan kepada lajur yang mengharapkan rentetan. Khususnya, anda cuba memberikan elemen $text[$nro] pada lajur, iaitu rentetan.
Penyelesaian:
Untuk menyelesaikan ralat ini, pastikan pembolehubah $name, $date, $text, dan $date2 dimulakan sebagai rentetan, bukan tatasusunan. Anda boleh melakukan ini dengan mengalih keluar [] daripada pernyataan tugasan, seperti yang ditunjukkan di bawah:
$name = $row['name']; $date = $row['date']; $text = $row['text']; $date2 = $row['date2'];
Dengan perubahan ini, pembolehubah $wrotesql akan diformatkan dengan betul sebagai rentetan dan kod akan dilaksanakan dengan jayanya.
Nota Tambahan untuk PHP 7:
Dalam PHP 7 dan kemudian versi, menggunakan operator [] pada pembolehubah tidak diisytiharkan untuk mencipta tatasusunan adalah dibenarkan. Walau bagaimanapun, menggunakannya pada pembolehubah yang telah diisytiharkan sebagai rentetan atau jenis lain masih akan mengakibatkan ralat.
Atas ialah kandungan terperinci Mengapa PHP Melemparkan Ralat 'Fatal: [] operator not supported for strings'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!