PHP kézikönyv Előző 12. Fejezet. Vezérlési szerkezetek Következő A PHP 4-ben (nem a PHP 3-ban!) a Perlhez és más nyelvekhez hasonlóan létezik az ún. foreach szerkezet is. Ez jól használható eszközt ad a tömbökön végzett iterációkhoz. Ha más típusú vagy inicializálatlan változóra nem lehet használni, azokra hibát jelez. Két szintaxisa létezik, a második egy apró, de hasznos kiegészítéssel nyújt többet az elsőhöz képest. foreach( tömb_kifejezés as $ertek) utasítás foreach(tömb_kifejezés as $kulcs = $ertek) utasítás Az első forma végigmegy a tömb_kifejezés szolgáltatta tömbön. Minden alkalommal az aktuális elem értéke a $ertek változóba kerül, és a belső tömb mutató növelésre kerül. (A következő alkalommal tehát a soron következő elemet fogja venni). A második forma ugyanezt végzi el, de az aktuális elem kulcsa a $kulcs változóba kerül. Megjegyzés: Amikor a foreach indul, a belső tömb mutató az első elemre áll. Ez azt jelenti, hogy nem kell meghívni a reset() függvényt egy foreach ciklus előtt. Megjegyzés: Szintén fontos megjegyezni, hogy a foreach függvény a megadott tömb egy másolatával dolgozik, nem magával a tömbbel, ezért az each() -el ellentétben az eredeti tömb mutatója nem változik meg, és a tömbön végzett módosítások sem kerülnek be az eredeti tömbbe. Megjegyzés: A foreach nem támogatja a @ hiba-elnyelő operátor használatát! Talán már tudod, hogy az alábbi példák egyenértékűek: reset ($tomb); while (list(, $ertek) = each ($tomb)) {echo "Érték: $ertek br \n";} foreach ($tomb as $ertek) {echo "Érték: $ertek br \n";} reset ($tomb); while (list($kulcs, $ertek) = each ($tomb)) {echo "Kulcs: $kulcs, Érték: $ertek br \n";} foreach ($tomb as $kulcs = $ertek) {echo "Kulcs: $kulcs, Érték: $ertek br \n";} Néhány további felhasználási példa: /* első foreach példa: csak érték * / $tomb = array (1, 2, 3, 17); foreach ($tomb as $ertek) {print "Az aktuális értéke \$tomb-nek: $ertek.\n";} / * második foreach példa: érték (a kulcs csak illusztráció) * / $tomb = array (1, 2, 3, 17); $i = 0; / * csak pedagógiai okokból:) * / foreach ($tomb as $ertek) {print "\$tomb[$i] = $ertek.\n"; $i++;} / * harmadik foreach példa: kulcs és érték * / $a = array ("egy "= 1, "kettő" = 2, "három "= 3, "tizenhét" = 17); foreach ($tomb as $kulcs = $ertek) {print "\$tomb[$kulcs] = $ertek.\n";} / * negyedik foreach példa: többdimenziós tömb * / $tomb[0][0] = "a"; $tomb[0][1] = "b"; $tomb[1][0] = "y"; $tomb[1][1] = "z"; foreach ($tomb as $belsotomb) {foreach ($belsotomb as $ertek) {print "$ertek\n";}} / * ötödik foreach példa: dinamikus tömbök * / foreach(array(1, 2, 3, 4, 5) as $ertek) {print "$ertek\n";} Előző Tartalom Következő Fel