Mengapa Saya Mendapat Amaran \'Tidak sah untuk foreach()\' dalam PHP?

Barbara Streisand
Lepaskan: 2024-10-26 08:52:30
asal
215 orang telah melayarinya

 Why Am I Getting the

Argumen Tidak Sah Dibekalkan untuk foreach() dalam PHP

Gambaran Keseluruhan

Amaran PHP "Argumen tidak sah dibekalkan untuk foreach()" menunjukkan bahawa yang diberikan argumen bukan tatasusunan yang sah apabila melelaran menggunakan binaan foreach.

Punca

Amaran dicetuskan apabila hujah yang dihantar kepada foreach bukan tatasusunan. Ini boleh berlaku atas beberapa sebab:

  • Meluluskan pembolehubah bukan tatasusunan
  • Mencuba untuk lelaran pada tatasusunan kosong
  • Menempatkan tatasusunan kepada pembolehubah secara salah

Contoh Kod:

<code class="php">// Invalid argument: not an array
foreach ($nonArrayVariable as $item) {
    // Error
}

// Invalid argument: empty array
$emptyArray = [];
foreach ($emptyArray as $item) {
    // Error
}

// Invalid assignment: assigns a string instead of an array
$someVariable = 'some-string';
foreach ($someVariable as $item) {
    // Error
}</code>
Salin selepas log masuk

Penyelesaian:

Untuk menyelesaikan amaran ini, pastikan hujah yang dihantar kepada foreach ialah tatasusunan yang sah. Anda boleh melakukan ini dengan:

  • Menetapkan tatasusunan yang sesuai kepada pembolehubah yang diulang.
  • Menyemak ketiadaan tatasusunan menggunakan empty() sebelum melelaran.
  • Menggunakan fungsi is_array() untuk mengesahkan bahawa pembolehubah ialah tatasusunan.

Berikut ialah contoh yang dikemas kini menggunakan is_array():

<code class="php">if (is_array($variable)) {
  foreach ($variable as $item) {
    // Now safe to iterate
  }
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Mendapat Amaran \'Tidak sah untuk foreach()\' dalam PHP?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!