Amaran PHP: Argumen tidak sah dibekalkan untuk foreach() - Penyelesaian

WBOY
Lepaskan: 2023-08-26 21:44:01
asal
2406 orang telah melayarinya

PHP Warning: Invalid argument supplied for foreach() - 解决方案

Amaran PHP: Argumen tidak sah dibekalkan untuk foreach() - Penyelesaian

Apabila membangunkan halaman web atau aplikasi menggunakan PHP, anda sering menghadapi pelbagai ralat dan amaran. Salah satu amaran biasa ialah "Argumen tidak sah yang dibekalkan untuk foreach()", yang biasanya dihasilkan apabila menggunakan gelung foreach untuk lelaran pada tatasusunan. Masalah ini kelihatan mudah, tetapi jika tidak diselesaikan dalam masa, ia boleh menyebabkan ralat lain atau menyebabkan fungsi program terjejas. Dalam artikel ini, saya akan memperkenalkan anda kepada beberapa cara biasa untuk menyelesaikan masalah ini.

Pertama, kita perlu memahami bagaimana amaran ini dijana. Apabila menggunakan gelung foreach untuk melintasi tatasusunan, jika argumen yang diberikan bukan tatasusunan atau objek tidak boleh dilalui, amaran "Argumen tidak sah dibekalkan untuk foreach()" akan muncul. Keadaan ini biasanya berlaku dalam situasi berikut:

  1. Tiada parameter disediakan untuk gelung foreach
  2. Parameter diberi nilai nol (null)
  3. Parameter diberi nilai bukan tatasusunan, seperti integer, Boolean values ​​​​etc.
  4. Parameter diberikan objek yang tidak boleh dilalui

Berikut adalah beberapa cara biasa untuk menyelesaikan masalah ini:

  1. Periksa sama ada parameter itu batal

Sebelum menggunakan gelung foreach, kita harus menyemak pertama Sama ada parameter kosong. Berikut ialah contoh kod:

if (!empty($array)) {
    foreach ($array as $item) {
        // do something
    }
}
Salin selepas log masuk

Kod ini mula-mula menggunakan fungsi empty() untuk menentukan sama ada parameter $array kosong Jika ia tidak kosong, gelung foreach dilaksanakan. Ini mengelakkan amaran kerana hujah kosong.

  1. Semak sama ada parameter ialah tatasusunan

Kita boleh menggunakan fungsi is_array() untuk menyemak sama ada parameter ialah tatasusunan. Berikut ialah kod sampel:

if (is_array($array)) {
    foreach ($array as $item) {
        // do something
    }
}
Salin selepas log masuk

Kod ini mula-mula menggunakan fungsi is_array() untuk menentukan sama ada parameter $array ialah tatasusunan Jika ia adalah tatasusunan, ia melaksanakan gelung foreach. Ini mengelakkan amaran kerana hujah bukan tatasusunan.

  1. Gunakan kekangan jenis

Dalam PHP 7 dan ke atas, kita boleh menggunakan kekangan jenis untuk memastikan bahawa parameter adalah tatasusunan. Berikut ialah kod sampel:

function processArray(array $array) {
    foreach ($array as $item) {
        // do something
    }
}
Salin selepas log masuk

Dalam kod sampel ini, parameter proses processArray() menggunakan tatasusunan kekangan jenis, yang bermaksud bahawa fungsi akan melaksanakan gelung foreach hanya apabila parameter ialah tatasusunan. Jika parameter bukan tatasusunan, ralat akan dilaporkan semasa memanggil fungsi.

  1. Menggunakan blok try-catch

Jika kami tidak pasti jenis parameter, atau tidak mahu keseluruhan program ranap kerana ralat dalam satu parameter, kami boleh menggunakan blok cuba-tangkap untuk menangkap pengecualian. Berikut ialah kod sampel:

try {
    foreach ($array as $item) {
        // do something
    }
} catch (Throwable $e) {
    // handle the exception
}
Salin selepas log masuk

Dalam kod sampel ini, kami meletakkan gelung foreach dalam blok cubaan Jika pengecualian berlaku, ia akan ditangkap oleh blok tangkapan. Kami boleh mengendalikan pengecualian atau memberikan mesej ralat mesra dalam blok tangkapan.

Ringkasan:

Amaran "Argumen tidak sah dibekalkan untuk foreach()" ialah masalah biasa yang berlaku apabila menggunakan gelung foreach untuk melintasi tatasusunan. Ia biasanya berlaku apabila parameter adalah nol, bukan tatasusunan, atau objek tidak boleh dilalui. Kita boleh menyelesaikan masalah ini dengan menyemak sama ada parameter adalah nol atau tatasusunan, menggunakan kekangan jenis atau menggunakan blok cuba-tangkap. Kaedah yang dinyatakan di atas hanyalah beberapa penyelesaian biasa, dan penyelesaian khusus harus ditentukan mengikut kod dan senario tertentu. Harap artikel ini dapat membantu anda menyelesaikan masalah ini dan menjadikan program PHP anda lebih stabil dan boleh dipercayai.

Atas ialah kandungan terperinci Amaran PHP: Argumen tidak sah dibekalkan untuk foreach() - Penyelesaian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
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!