Tom: Verzeichnis auslesen und in Array schreiben

Beitrag lesen

Hello,

while ($bild = readdir($dir))

Der Ausdruck in der äußeren Klammer gibt das Ergebnis der Zuweisung an das while-Konsrtukt

Wen jetzt eine Datei '0' heißt, dann wird damit $bild diesen Wert aufnehmen und an while weitergeben. Da while aber nur die Ergebnisse logischer Vergleiche auswertet und PHP eine automatische Typumwandlung hat, wird der name '0' in den logischen Wert false tansformiert.

Die Schleife würde also abbrechen, sowie eine Datei mit dem (unter Unix erlaubten) Namen '0' auftauchen würde. Wo diese Datei in der Kette der "findfirst"/"findnext" Dateinamen steht, ist dem Betriebssystem überlassen und nicht wirklich vorhersehbar. Es kann am Anfang der Kette, in der Mitte oder auch ganz am Ende sein. Oder eben gar nicht, wenn es eine solche Datei im Verzeich is nicht gibt.

Der Vergleich

while  ( ($bild = readdir($dir)) !== false )

führt nun durch den Identitäts-Operator einen Vergleich von Wert _und_ Typ durch.
False entspricht in PHP    '0' | 0 | ' ' | '' | false | NULL    wenn man nur den Wert vergleicht, aber der Typ stimmt nur dann überein, wenn eben auf beiden Seiten false steht.

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau