Mengelakkan "Argumen Tidak Sah Dibekalkan untuk foreach()" Amaran
Dalam pengaturcaraan, adalah perkara biasa untuk menghadapi situasi di mana data mungkin tidak selalunya dalam format tatasusunan. Apabila menghantar data sedemikian ke gelung foreach, ia boleh mencetuskan amaran yang menunjukkan "Argumen tidak sah dibekalkan untuk foreach()."
Penyelesaian Yang Mungkin
Untuk menangani perkara ini, beberapa pendekatan boleh dipertimbangkan:
1. Menghantar ke Tatasusunan
Ini melibatkan penggunaan hantaran (tatasusunan) untuk menukar data kepada tatasusunan sebelum menghantarnya ke foreach:
foreach ((array) $values as $value) { ... }
2. Memulakan kepada Tatasusunan
Jika data adalah batal, anda boleh memulakannya kepada tatasusunan kosong sebelum menggunakannya dalam foreach:
$values = is_array($values) ? $values : []; foreach ($values as $value) { ... }
3. Balutan Bersyarat
Sebagai alternatif, anda boleh membalut gelung foreach dengan pernyataan if untuk menyemak sama ada data ialah tatasusunan:
if (is_array($values)) { foreach ($values as $value) { ... } }
4. Pendekatan Lain
if (is_iterable($values)) { foreach ($values as $value) { ... } }
Penyelesaian yang mengimbangi kebersihan dan kecekapan bergantung pada keadaan tertentu. Walau bagaimanapun, menyemak kedua-dua jenis tatasusunan dan objek boleh memberikan pendekatan yang lebih mantap:
if (is_array($values) || is_object($values)) { foreach ($values as $value) { ... } }
Dengan mempertimbangkan pilihan ini, pembangun boleh mengendalikan data bukan tatasusunan dengan berkesan dan menyekat amaran "Argumen tidak sah" sambil mengekalkan kebersihan dan prestasi kod .
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Amaran 'Argumen Tidak Sah Dibekalkan untuk foreach()' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!