Rumah > Artikel > pembangunan bahagian belakang > Mengapa Saya Mendapat \"Ralat Maut: [] Operator Tidak Disokong untuk Rentetan\" dalam PHP 7?
Menyelesaikan masalah "Fatal Error: [] Operator Not Supported for Strings" Isu
Ralat maut ini timbul apabila cuba menggunakan sintaks pendek untuk operasi tolak tatasusunan pada pembolehubah bukan tatasusunan, biasanya rentetan. Meneliti coretan kod yang disediakan, kemungkinan besar satu atau lebih pembolehubah ($name, $date, $text, $date2) pada mulanya ditakrifkan sebagai rentetan.
Untuk membetulkan isu ini, ubah tugasan dalam gelung untuk menetapkan nilai baris secara langsung kepada pembolehubah ini tanpa membuat tatasusunan:
<code class="php">$name = $row['name']; $date = $row['date']; $text = $row['text']; $date2 = $row['date2'];</code>
PHP 7 telah melaksanakan peraturan yang lebih ketat untuk tolak tatasusunan sintaks dengan indeks kosong. Pembolehubah yang sebelum ini ditakrifkan sebagai bukan tatasusunan (rentetan, nombor, objek) kini dilarang daripada menggunakan sintaks ini, membawa kepada ralat yang disebutkan di atas.
Untuk menekankan, operasi ini kekal sah dalam PHP 7 :
<code class="php">unset($arrayWithEmptyIndices); $arrayWithEmptyIndices[] = 'value'; // Creates an array and adds an entry $array = []; // Creates an array $array[] = 'value'; // Pushes an entry</code>
Walau bagaimanapun, percubaan untuk menggunakan sintaks tolak tatasusunan pada pembolehubah yang diisytiharkan sebagai rentetan, nombor atau objek akan terhasil dalam kesilapan yang membawa maut:
<code class="php">$stringAsVariable = ''; $stringAsVariable[] = 'value'; $numberAsVariable = 1; $numberAsVariable[] = 'value'; $objectAsVariable = new stdclass(); $objectAsVariable[] = 'value';</code>
Atas ialah kandungan terperinci Mengapa Saya Mendapat \"Ralat Maut: [] Operator Tidak Disokong untuk Rentetan\" dalam PHP 7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!