Tajuk ditulis semula sebagai: "Parameter fungsi foreach() adalah tidak sah"
P粉419164700
P粉419164700 2023-08-21 12:03:34
0
2
488
<p>Adalah perkara biasa bagi saya untuk berurusan dengan data yang boleh sama ada tatasusunan atau pembolehubah kosong dan suapan data itu kepada beberapa <kod>foreach</code>. </p> <pre class="brush:php;toolbar:false;">$values ​​​​= get_values(); foreach ($nilai sebagai $nilai){ ... }</pre> <p>Apabila anda membekalkan foreach dengan data yang bukan tatasusunan, anda akan menerima amaran: </p> <blockquote> <p>Amaran: Argumen tidak sah dibekalkan dalam foreach() dalam [...]</p> </blockquote> <p>Dengan mengandaikan bahawa fungsi <code>get_values()</code> tidak boleh difaktorkan semula untuk sentiasa mengembalikan tatasusunan (keserasian ke belakang, kod sumber tidak tersedia atau sebarang sebab lain), saya ingin tahu cara untuk mengelakkan amaran ini Apakah cara yang paling bersih dan paling berkesan:</p> <ul> <li>Tukar <kod>$nilai</kod> <li>Memulakan <kod>$nilai</kod> <li>Balut <kod>foreach</kod></li> dalam <kod>jika</kod> <li>Lain-lain (sila berikan cadangan)</li> </ul><p><br /></p>
P粉419164700
P粉419164700

membalas semua(2)
P粉811349112

Bagaimana dengan ini? Ia lebih ringkas dan semuanya dalam satu baris.

foreach ((array) $items as $item) {
 // ...
 }
P粉771233336

Secara peribadi, saya rasa ini adalah yang paling bersih - tidak pasti sama ada ia paling berkesan, maklumlah!

if (is_array($values) || is_object($values))
{
    foreach ($values as $value)
    {
        ...
    }
}

Sebab keutamaan saya ialah ia tidak memperuntukkan tatasusunan kosong apabila anda tidak mempunyai apa-apa untuk bermula.

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!