409 Stimmen

Ungültiges Argument für foreach() geliefert

Es passiert mir oft, dass ich Daten verarbeiten muss, die entweder ein Array oder eine Null-Variable sein können, und dass ich einige foreach mit diesen Daten.

$values = get_values();

foreach ($values as $value){
  ...
}

Wenn Sie eine foreach mit Daten füttern, die kein Array sind, erhalten Sie eine Warnung:

Warnung: Ungültiges Argument geliefert für foreach() in [...]

Angenommen, es ist nicht möglich, die get_values() Funktion immer ein Array zurückgeben (Abwärtskompatibilität, nicht verfügbarer Quellcode, welcher Grund auch immer), frage ich mich, was der sauberste und effizienteste Weg ist, um diese Warnungen zu vermeiden:

  • Gießen $values zum Array
  • Initialisierung $values zum Array
  • Einpacken der foreach mit einer if
  • Sonstiges (bitte vorschlagen)

-2voto

as_bold_as_love Punkte 216

Ich würde das Gleiche tun wie Andy, aber ich würde die Funktion "leer" verwenden.

etwa so:

if(empty($yourArray))
{echo"<p>There's nothing in the array.....</p>";}
else
{
foreach ($yourArray as $current_array_item)
  {
    //do something with the current array item here
  } 
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X