Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Mendapat Amaran \"Tidak sah untuk foreach()\" dalam PHP?

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

Barbara Streisand
Barbara Streisandasal
2024-10-26 08:52:30216semak imbas

 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>

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>

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!

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