Matti Mäkitalo: komischer Wert für key() in einer foreach-Schleife

Beitrag lesen

Hi,

wozu gibt es denn die sch****-Funktion key()?! :-) Neh will damit mehr sagen, dass ich diese nicht wirklich kenne, es im Manual (auf Deutsch^^) nicht unbrauchbar geklungen hat und ich sie deshalb mal ausprobiert habe.

Ich versteh den zweiten Satz beim besten Willen nicht. Um deine Frage zu beantworten: es ist, wie bereits erwähnt, stellt key() zusammen mit seinen Geschwistern next(), current(), each() und reset() eine alternative (und alte) Syntax bereit, um Arrays zu iterieren.

Dein Beispiel aus deinem Eingangsposting findest du übrigens "korrekt" (d.h.: wie du es erwartest) umgesetzt in der Dokumentation zu key.
Dorst siehst du auch, dass das next(), welches, wie von ChrisB erwähnt, auch innerhalb von foreach implizit genutzt wird, um den Iterator nach vorne zu schieben, am Ende der while-Schleife notiert wird, damit key() den aktuellen Index des Arrays ermitteln kann.

Bis die Tage,
Matti