Autor | Zpráva | ||
---|---|---|---|
Vojtik Profil |
#1 · Zasláno: 6. 11. 2016, 10:01:11
Dobrý den,
Můžete mi prosím říct význam foreache? Procházel jsem tutoriál na ITNetworku a moc jsem to nepochopil. Děkuji za odpověď. |
||
mckay Profil |
Vojtik:
Jak už název napovídá, jde o cyklus, který funguje stylem "pro každý". Pod tím "každý" si můžete například představit každý prvek pole. Cyklus obecně funguje tak, že provádí své tělo vícekrát (nebo také říkáme, že iteruje) - v závislosti na nějaké podmínce. Podmínka pro foreach je taková, že cyklus proběhne pro všechny prvky. Aplikujete-li tedy foreach na pole strukturované takto: [ "ahoj", "nazdar", "cau" ] , cyklus proběhne celkem 3x, s každým průchodem (iterací) bude uvažovat jeden z prvků ahoj, nazdar, cau v tomto pořadí.
$pole = [ "ahoj", "nazdar", "cau" ]; foreach ($pole as $prvek) { echo "Právě iteruji pro prvek: " . $prvek . PHP_EOL; } To samé by se samozřejmě dalo napsat s využitím cyklů for či while, ale smysl použití foreach-e je v tom, že je pro toto využití zamýšlen. Jako parametr mu dáte pole a on se provede tolikrát, kolik prvků v poli je, s každým svým průběhem, v proměnné následující za as obsahuje "další" hodnotu z pole, nad kterým prochází.
Příjemnou věcí, kterou dále můžete využít u foreache je přístup ke klíči i hodnotě uložené na tomto klíči v poli. Uvažujme pole strukturované takto: [ "teplota" => "100", "datum" => "dnes"]
$hodnoty = [ "teplota" => "100", "datum" => "dnes"]; foreach ($hodnoty as $klic => $hodnota) { echo "Hodnota uložená pod klíčem " . $klic . " je " . $hodnota . PHP_EOL; } Výstupem pak bude: Hodnota uložená pod klíčem teplota je 100 Hodnota uložená pod klíčem cas je dnes K čemu to reálně je? Řekněme, že neznáte předem kolik prvků pole budete mít, ale víte, že s každým chcete provést nějakou operaci. Pak je foreach jasné řešení. V generičtějším případě ani nevíte, jak cílové pole bude vypadat a pak je foreach také vhodné řešení. Obecně bych asi ale doporučil naučit se do budoucna anglicky a/nebo používat Google, protože PHP má hodně příjemnou dokumentaci dostupnou na php.net, pro foreach konkrétně zde. |
||
Vojtik Profil |
#3 · Zasláno: 7. 11. 2016, 12:10:35
Děkuji moc.
|
||
Časová prodleva: 7 let
|
0