Rumah  >  Soal Jawab  >  teks badan

Tajuk ditulis semula sebagai: "Parameter fungsi foreach() adalah tidak sah"

<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粉419164700P粉419164700448 hari yang lalu524

membalas semua(2)saya akan balas

  • P粉811349112

    P粉8113491122023-08-22 10:58:44

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

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

    balas
    0
  • P粉771233336

    P粉7712333362023-08-22 00:25:34

    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.

    balas
    0
  • Batalbalas