Autor | Zpráva | ||
---|---|---|---|
robbie Profil * |
#1 · Zasláno: 8. 4. 2013, 22:51:14
v poli mám uvedeny 3 prvky, v učebnici píší, že při použití cyklu foreach se provede příkaz pro každý prvek, ale me se provede vždy jen pro poslední prvek pole, je chyba v učebnici?měly by se tedy vypsat všechny 3 indexy se třemi prvky nebo jen ten poslední, uvádím kod pro ilustraci. Děkuji
<?php $pole=array(1=>10,2=>100,3=>300,); foreach ($pole as $index=>$prvek); echo "Nalezen index: ", $index, " prvek: ",$prvek,"<br>"; ?> |
||
juriad Profil |
#2 · Zasláno: 8. 4. 2013, 22:53:49
Je chyba na konci 4. řádku, máš tam středník. Tedy pro každý prvek vykonáš prázdný příkaz a poslední index v proměnné zůstane. Odstraň ten středník.
|
||
Someone Profil |
#3 · Zasláno: 8. 4. 2013, 22:54:25
Kód, který se má provést v každém cyklu se uzavírá do bloku složených závorel.
Řetězce se spojují tečkami: $pole = array(1=>10,100,300); // pokud majít být indexy od 1 tak stačí uvést index jen u prvního a zbytek se dočísluje foreach($pole as $index => $prvek) { echo "Nalezen prvek " . $prvek . " s indexem " . $index; } |
||
robbie Profil * |
#4 · Zasláno: 8. 4. 2013, 23:26:02
děkuji za radu, asi pravdepodobně byla chyba,že v knize mají čárky místo teček v propojení řetězců, ikdyž nechápu, jak to že to neházelo hned chybu v prohlížeči, ale prohlížeč to ignoroval.
|
||
Tori Profil |
robbie, Someone:
V tom je malý rozdíl: echo "a" . "b" . "c"; nejdřív vytvoří řetězec "abc" a pak ho pošle na výstup.
echo "a", "b", "c"; pošle na výstup "a", potom "b", potom "c" - každé zvlášť.
IMHO by jedině při vypisování nějakých velkých objemů dat (např. vykreslení šablony) mohlo být lepší použít čárky (a teda možná šetřit paměť), ale jinak je to myslím věc programátorského stylu - tzn. „piš jak chceš, ale jednotně“. :) robbie: Uzavírání cyklů do závorek je spíš z opatrnosti (viz defenzivní programování). Jako tělo bloků if, while, for, foreach apod. se považuje buď vše, co je mezi složenými závorkami, anebo první následující příkaz. Akorát když pak chcete doplnit, že se v cyklu má provést další příkaz, tak bez závorek snadno vznikají chyby typu: if (podminka) echo 'tohle se provede jen pri splneni podminky'; echo 'tohle si myslim, ze taky, ale ve skutecnosti se provede vzdy'; Podobně i čárka za posledním prvkem pole v [#1]: při zápise array(1, 2, 3, 4) je zbytečná, ale tady:
$pole = array( 'klic' => $jinePole['vnoreny']['klic'], 'klic2' => 123456, ); |
||
Časová prodleva: 3 dny
|
|||
petr 6 Profil |
#6 · Zasláno: 11. 4. 2013, 19:41:59
robbie:
„asi pravdepodobně byla chyba,že v knize mají čárky místo teček v propojení řetězců“ Ne, chyba byla ve středníku na 4. řádku. Viz [#2] |
||
Časová prodleva: 11 let
|
0