PHP 4 (PHP 3 ne) vsebuje foreach stavek, tako kot Perl in nekateri drugi programski jeziki. To vam ponuja enostaven sprehod cez kjluče in vrednosti v polju. foreach deluje samo na poljih in če jo poskusite uporabiti na spremenljivki drugačnega tipa, ali na neinicializirani spremenljivki, bo izpisalo napako. Obstajata dve sintaksi; slednja je manjša a uporabna razširitev prve:
foreach(array_expression as $vrednost) stavek foreach(array_expression as $kljuc => $vrednost) stavek |
Prva oblika sintakse se sprehodi preko polja podanega z array_expression. Ob vsaki zanki je vrednost trenutnega elementa dodeljena spremenljivki $vrednost in interni kazalec na element v polju se poveča za ena (tako da boste ob naslednji zanki dobili naslednji element v polju).
Druga oblike sintakse naredi isto stvar, le da poleg vrednosti dobite tudi ključ elementa v polju, katerega vrednost se dodeli spremenljivki kljuc.
Opomba: Ko se foreach prvič izvede, se interni kazalec na element v polju nastavi na prvi element v polju. To pomeni, da vam ni potrebno vsakič klicati reset() funkcije pred začetkom foreach zanke.
Opomba: Pomnite tudi, da foreach operira na kopiji podanega polja in ne na polju samem. Kar pomeni, da kazalec na element v polju ni spremenjen, kot se to zgodi pri each() stavku in spremembe v elementu polja ne vplivajo na vrednost originalnega polja.
Opomba: foreach ne podpira '@', ki preprečuje izpis napak.
Verjetno ste opazili, da so naslednji primeri funkcionalno enaki:
reset ($arr); |
reset ($arr); |
Še nekaj primerov uporabe:
/* foreach primer 1: samo vrednosti */ |