Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Mendapat \"Ralat Maut: [] Operator Tidak Disokong untuk Rentetan\" dalam PHP 7?

Mengapa Saya Mendapat \"Ralat Maut: [] Operator Tidak Disokong untuk Rentetan\" dalam PHP 7?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 05:03:27260semak imbas

Why Am I Getting the

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!

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
Artikel sebelumnya:PHP 8.3 Beta DikeluarkanArtikel seterusnya:PHP 8.3 Beta Dikeluarkan