Rumah > pembangunan bahagian belakang > tutorial php > 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
Lepaskan: 2024-11-01 05:03:27
asal
354 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan