Tom: How to Debug a Program...

Beitrag lesen

Hello,

hi,

?? Was soll das denn bringen. $array ist doch als array definiert.
Deswegen wird das foreach immer ausgeführt werden.

Ein Array ist nur dann auch "wirklich" ein Array, wenn auch Werte drinstehen.

Erstens sind Arrays in PHP gar meine Arrays, sondern verkettete Listen.

<img src="http://bitworks.de/~selfHTML/EinfachesArray500.gif" border="0" alt="">

und

<img src="http://bitworks.de/~selfHTML/VerzweigtesArray500.gif" border="0" alt="">

Ob da nun Elemente angekoppelt sind oder nicht, ändert am Typ nichts. Und wenn der Startzeiger gelich auf den Endepunkt zeigt und umgekehrt, dann sind eben keine Elemente da. Die Programmierer von PHP sind nicht blöd und haben diese einfachen Grenzerscheinungen selbstverständlich sauber geregelt. Also verbreite hier bitte kein ungesundes Viertelwissen.

In der klassichen Programmierung, in der ein Array ein geschlossener Speicherbereich ist, der mit wiederkehrenden Datenstrukturen gefüllte werden darf, ist es selbstverständlich auch möglich, dass in dem reservierten Bereich absolut keine gültigen Daten vorhanden sind.

Die Fehlermeldung lautet doch "Invalid argument supplied for foreach()".

Und genau aus diesem Grunde soll direkt VOR dem foreach() nochmals der Typ abgeprüft werden

if(is_array($_liste))
{
  foreach($_liste als $zeile)
  {
    # tuWas
  }
}
else
{
  #Fehlermeldung
  echo '<br> Typ von $_liste ist '.gettype($_liste);
  exit;
}

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen