suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Titel umgeschrieben in: „Ungültiges Argument: Das an foreach() übergebene Argument ist ungültig“

<p>Es ist üblich, dass ich mit Daten arbeite, die entweder ein Array oder eine leere Variable sein können, und diese Daten einem <code>foreach</code> zuführe. </p> <pre class="brush:php;toolbar:false;">$values ​​​​= get_values(); foreach ($values ​​​​as $value){ ... }</pre> <p>Wenn Sie Daten bereitstellen, die kein Array für foreach sind, erhalten Sie eine Warnung: </p> <blockquote> <p>Warnung: Ungültiges Argument für foreach() in [...]</p> </blockquote> <p>Angenommen, die Funktion <code>get_values()</code> kann nicht so umgestaltet werden, dass sie immer ein Array zurückgibt (Abwärtskompatibilität, nicht verfügbarer Quellcode oder andere Gründe), würde ich gerne wissen, wie ich diese vermeiden kann Warnungen Was ist der sauberste und effizienteste Weg: </p> <ul> <li>Konvertieren Sie <code>$values</code> in ein Array</li> <li><code>$values</code> in einem Array initialisieren</li> <li>Wrap <code>foreach</code></li> in <code>if</code> <li>Sonstiges (bitte Vorschläge machen)</li> </ul></p>
P粉546138344P粉546138344459 Tage vor448

Antworte allen(2)Ich werde antworten

  • P粉635509719

    P粉6355097192023-08-22 10:45:45

    这个怎么样?它更简洁,而且都在一行中。

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

    Antwort
    0
  • P粉517814372

    P粉5178143722023-08-22 09:35:52

    个人而言,我觉得这是最干净的 - 不确定是否最高效,注意!

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

    我偏好的原因是当你根本没有任何内容时,它不会分配一个空数组。

    Antwort
    0
  • StornierenAntwort