Heim  >  Fragen und Antworten  >  Hauptteil

Titel umgeschrieben als: „Die Parameter der Funktion foreach() sind 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 foreach Daten bereitstellen, die kein Array sind, erhalten Sie eine Warnung: </p> <blockquote> <p>Warnung: Ungültiges Argument in 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 aus einem anderen Grund), würde ich gerne wissen, wie dies vermieden werden kann diese Warnungen Was ist der sauberste und effizienteste Weg:</p> <ul> <li>Konvertieren Sie <code>$values</code> <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><br /></p>
P粉419164700P粉419164700400 Tage vor495

Antworte allen(2)Ich werde antworten

  • P粉811349112

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

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

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

    Antwort
    0
  • P粉771233336

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

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

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

    我偏好的原因是当你一开始就没有任何东西时,它不会分配一个空数组。

    Antwort
    0
  • StornierenAntwort