Menyelesaikan Ralat PHP: Perkara yang Perlu Dipertimbangkan Semasa Menukar Tatasusunan kepada Rentetan
P粉538462187
2023-08-21 12:23:52
<p>Saya mempunyai fail PHP dan saya cuba mengeluarkan <kod>$_POST</kod>, tetapi saya mendapat ralat, berikut ialah kodnya: </p>
<pre class="brush:php;toolbar:false;">echo "<html>";
echo "<badan>";
untuk($i=0; $i<5;$i++){
echo "<input name='C[]' value='$Texting[$i]' " .
"style='background-color:#D0A9F5;'></input>";
}
echo "</body>";
echo "</html>";
echo '<input type="submit" value="Simpan Jadual" name="G"></input>'</pre>
<p>Berikut ialah kod untuk mengeluarkan POST. </p>
<pre class="brush:php;toolbar:false;">if(!kosong($_POST['G'])){
echo $_POST['C'];
}</pre>
<p>Tetapi apabila kod dijalankan, saya mendapat ralat seperti ini: </p>
<pre class="brush:php;toolbar:false;">Notis: Tatasusunan kepada penukaran rentetan dalam
C:xampphtdocsPHISFinalSubmissionOfTheFormPHP.php pada baris 8</pre>
<p>Apakah yang dimaksudkan dengan ralat ini dan bagaimana saya boleh membetulkannya? </p>
Apakah maksud Notis PHP dan cara mengeluarkannya semula:
Jika anda menghantar tatasusunan PHP ke fungsi yang mengharapkan rentetan, seperti
echo
或print
,那么PHP解释器会将你的数组转换为字面字符串Array
, buang Notis ini dan teruskan pelaksanaan. Contohnya:Dalam kes ini, fungsi
print
将字面字符串Array
output ke stdout, kemudian log Notis ke stderr dan meneruskan pelaksanaan.Satu lagi contoh skrip PHP:
Kaedah pembetulan 1: Gunakan gelung foreach untuk mengakses elemen tatasusunan
http://php.net/foreach
Keluaran:
Atau mengandungi nama kunci tatasusunan:
Keluaran:
Perhatikan bahawa elemen tatasusunan juga boleh menjadi tatasusunan. Dalam kes ini, ia boleh digunakan semula
foreach
或使用数组语法访问内部数组元素,例如$row['name']
Pembetulan 2: Gabungkan semua sel dalam tatasusunan bersama-sama:
Jika ia hanya tatasusunan satu dimensi biasa, anda boleh menggunakan pembatas untuk menggabungkan semua sel menjadi rentetan:
Kaedah pembetulan 3: Tukar tatasusunan struktur kompleks kepada rentetan:
Jika tatasusunan anda mempunyai struktur yang kompleks tetapi masih perlu menukarnya kepada rentetan, anda boleh menggunakan http://php.net/json_encode
Keluaran:
Lihat struktur tatasusunan dengan cepat: gunakan fungsi php terbina dalam
Jika anda hanya ingin memeriksa kandungan tatasusunan untuk tujuan penyahpepijatan, anda boleh menggunakan salah satu fungsi berikut. Perlu diingat bahawa var_dump ialah yang paling bertele-tele daripada kesemuanya dan biasanya lebih disukai untuk tujuan ini
Contoh:
Keluaran:
Apabila anda mempunyai banyak nama
C[]
的HTML输入时,你在POST数组的另一端得到的是这些值的数组$_POST['C']
。所以当你echo
它时,你正在尝试打印一个数组,所以它只会打印Array
dan petunjuk.Untuk mencetak tatasusunan dengan betul, anda boleh menggelungkannya dan
echo
每个元素,或者你可以使用print_r
.Selain itu, jika anda tidak tahu sama ada ia adalah tatasusunan atau rentetan atau apa sahaja, anda boleh menggunakan
var_dump($var)
dan ia akan memberitahu anda jenisnya dan kandungannya. Untuk tujuan penyahpepijatan sahaja.