PHP - 6. díl – cyklus for a bloky kódu

Diskuze čtenářů k článku

thx  |  27. 03. 2005 20:02

Podle me je tahle serie clanku vic nez dobra a zacatecnik (jako treba ja :) ) se toho podle ni dokaze naucit celkem dost... Kdyz se vam porad na prezentaci tehlech clanku neco nezda panove programatori, zkuste si neco podobneho vytvorit sami, uvidite ze to neni nic jednoduchyho napsat takovou serii podle ktere se ma nekdo ucit a to tomu muzete rozumet sebevic...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Anna  |  23. 06. 2007 00:18

Souhlasím, tohle je snad jediný návod (kromě na jakpsatweb) který opravdu chápu, protože jsem opravdu začátečník a všechny návody k php jsou většinou psané stylem "a tato funkce se používá podobně jako v Delphi (nebo jiný jazyk)", což je mi hodně platné, a tohle je opravdu polopaticky, což je k nezaplacení. Všechny knihy, co doma o PHP mám, skoro vůbec nechápu, protože pro mě je to jak psané svahilštinou, pořád nějaký konstruktor, podmínka a kdesi cosi, takové věci, které bych nejdřív potřebovala pořádně vysvětlit, nejlíp na několika primitivních příkladech, jako je to tady. A je to opravdu umění, dokázat někomu něco podat tak, aby to pochopil. Takže díky, i když s velkým časovým odstupem.

Souhlasím  |  Nesouhlasím  |  Odpovědět
pavel  |  16. 03. 2004 10:49

Autor se opet snazi zmast zacatecniky co to jde...

1) Nechapu, proc autor pouziva vystup s vice parametry i kdyz je narocnejsi, nezli spojovani stringu ( echo "...", $i;  vs. echo "...".$i;)

2) Nevim proc autor pouzva pre-inkrementaci, kdyz je v praxi pouzivana mene. Navic mam pocit, ze zadne inkrementacni/dekrementacni operatory nebyly vysvetleny.

3) Mozna by stalo za zminku, ze porovnani "<=" je o dost narocnejsi nez jednoduche "<".

4) Vysvetlovani slozeneho prikazu jako "blok kodu" je trochu zavadejici. Hodne matouci muze byt, ze je slozeny prikaz vysvetlen az v tomto dile.

5) Chybi zminka o slozenem prikazu v tele for (3. vyraz)

6) Uplne chybi zminka o break a continue, ktere k cyklum docela dost patri...

Kazdopadne je to leps nez minule :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Vita  |  16. 03. 2004 14:28

Mne hlavne unika proc kdyz autor pouziva retezce v uvozovkach kdyz nakonec jejich hlavni vyhodu - parsovani retezce vubec nepouzije a retezec spojuje jak kdyby byl v single-quotes.

Souhlasím  |  Nesouhlasím  |  Odpovědět
dgx  |  16. 03. 2004 14:30

Protože parsování řetězců je opět kapitola sama pro sebe, přece to „nevybalí“ na začátečníky hned, ne?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Miloslav Ponkrác  |  16. 03. 2004 23:06

Jak už napsal pan dgx, parsování uvnitř řetězce chystám, jen musím postupně.

Souhlasím  |  Nesouhlasím  |  Odpovědět
dgx  |  16. 03. 2004 14:29

Pavle, kdo chce psa bít, si vždycky hůl najde, že?

1) Výstup s více parametry je náročnější? A v čem asi tak? Spojování řetězců je kapitola sama o sobě, a jestli se nemýlím, dosud to tu probíráno nebylo. Takže je naprosto v pořádku, že to autor nepoužívá.

2) Použití preinkrementace a postinkrementace je v tomto případě jedno. Ačkoliv častěji používám také druhou variantu, výtýkat někomu jiný přístup bych si nedovolil. A zvláštní je, že teď Vám vadí, že se o inkrementaci dosud nemluvilo, ale v případě spojování řetězců Vám ne.

3) A prosím, v čem je porovnávání „<=“ náročnější než „<“ ? Buď pište konkrétně, nebo takové věci nevytýkejte vůbec.

Souhlasím  |  Nesouhlasím  |  Odpovědět
pavel  |  16. 03. 2004 16:44

1) Vystup s vice parametry je o to narocnejsi, ze spojovani stringu provede php a ne programator. Pokud je spojeni evidentni (jako zde a vetsine pripadech) pak vyuziti automatickeho spojovani v prikazu echo nema vyznam.

2) Ano, pre i post incrementace jsou v tomto pripade stejne, ale ve vetsine ostatnich pripadech to je jine, nehlede na to, ze je cely serial urcen pro zacatecniky, kteri bezhlave opisuji kusy kodu.

U vysvetleni inkrementace jsem mel na mysli spise vysvetleni, co je pre a post a jake to ma pouziti. Pocitam, ze vetsina lidi vi co je inkrementace a spojovani retezcu.

3) <= jsou dve operace, < pouze jedna, v praxi se take pouziva pouhe "<", tak nevidim duvod proc lidi ucit neco jineho.

 

Vetsinou se jedna pouze o drobne chybu, nebo jine pouziti, ale prave takoveto drobnosti asi zacatecnikum dost zneprijemni budouci zivot. Kdyz nebudou mit dobre zaklady nemaji dal na cem stavet.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Miloslav Ponkrác  |  16. 03. 2004 23:03

Ad 1) U výstupu s více parametry se žádné spojování, pokud je mi známo, na úrovni PHP neprovádí. Proč také? Vždyť daleko jednodušší pro tvůrce php a logičtější je to vypsat jedno po druhém a nic nespojovat. Dá se proto očekávat, že výstup s více parametry bude o něco rychlejší a efektivnější, než výstup se spojováním řetězců. Z těchto důvodů i já sám používám výstup s více parametry ve svých soukromých skriptech.

Ad 2) Souhlasím, že jsem nevysvětlil pre a post použití, ale přišlo mi hloupé prostě neukázat použití ++ operátoru, když je prostě ve for cyklu vhodný. A pro tento případ pre a post chování nehraje roli.

Ad 3) Neznám implemenetační detaily vnitřku PHP interpretru, ale celkem mi přijde hloupé, že by

Souhlasím  |  Nesouhlasím  |  Odpovědět
Miloslav Ponkrác  |  16. 03. 2004 23:05

Ad 1) U výstupu s více parametry se žádné spojování, pokud je mi známo, na úrovni PHP neprovádí. Proč také? Vždyť daleko jednodušší pro tvůrce php a logičtější je to vypsat jedno po druhém a nic nespojovat. Dá se proto očekávat, že výstup s více parametry bude o něco rychlejší a efektivnější, než výstup se spojováním řetězců. Z těchto důvodů i já sám používám výstup s více parametry ve svých soukromých skriptech.

Ad 2) Souhlasím, že jsem nevysvětlil pre a post použití, ale přišlo mi hloupé prostě neukázat použití ++ operátoru, když je prostě ve for cyklu vhodný. A pro tento případ pre a post chování nehraje roli.

Ad 3) Neznám implemenetační detaily vnitřku PHP interpretru, ale celkem mi přijde hloupé, že by <= byly dvě vnitřní operace. Spíš si myslím, že to bude jedna operace, jinak by PHP interpretr byl napsán dost neobvykle, prostě to nepředpokládám. Myslím, že operátor <, stejně tak jako operátor <= budou obojí jedna vnitřní operace.

Souhlasím  |  Nesouhlasím  |  Odpovědět
kuca  |  17. 03. 2004 15:51

1) mno musim se zastat, ale echo fakt nejdriv provede spojeni stringu a az pak vystup - viz. dokumentace PHP.net - tj. manualni spojeni je trochu efektivnejsi - ale v tomhle pripade je to nemeritelny, ale mozna az lamky zacnou psat slozity kody, pak narazej :)

3) bohuzel php nerozlisuje datove typy (php do verze 5) a tak <= jsou fakt 2 operace a < jenom jedna. Je to ale docela mimo misu, vzhledem k tomu, ze to je cely urceny pro zacatecniky, ktery nemaj poneti co je to slozitost:)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Vita  |  17. 03. 2004 17:57

PHP datove typy rozlisuje. Jen neni striktne typove.

Souhlasím  |  Nesouhlasím  |  Odpovědět
dgx  |  18. 03. 2004 19:04

1) echo nejdriv provede spojeni stringu a pak az vystup, zatimco manualni spojeni provede spojeni a pak vystup? To je to stejne, ze? Asi Vas prekvapim, ale manualni spojeni je ve skutecnosti pomalejsi. O minimalni cas, ale je.

2) PHP samozrejme rozlisuje typy (podívejte se třeba na funkci gettype), ale i kdyby nerozlisovalo, nemeni to nic na tom, ze <= je jedna operace.

Souhlasím  |  Nesouhlasím  |  Odpovědět
dgx  |  17. 03. 2004 01:18

Pavle, vedle jak ta jedle, udelal jsi hlupaka sam ze sebe Nemyslim to ve zlem, zrejme jsi nekde narazil na spatne informace, kvuli kterym se ted bezduvodne vyhybas pouzivani vice promennych u konstrukce echo nebo jeste hure, pouziti operatoru <=. Klidne je muzes zacit pouzivat!

Souhlasím  |  Nesouhlasím  |  Odpovědět
Pepa  |  16. 03. 2004 10:44

Pac zacinam s PHP tak jsou to prispevky ktere se fakt hodi. Muzu rict ze jsou to zatim veci ktere znam a timdle si je zopakuji ci rozsirim. Kritizovat programatora za to jake ma poradi slov viz. vejs je trochu divne. Ze je tam male pismo u bodu 5 (jestli se nepletu) to je snad kosmeticka chyby. Mne jde o obsah. Ten se mi libi je to lepsi nez kdyz nekdo zacne odborne vypravet o vecech a ten druhy nema ani tuseni o cem mluvi Proste po lopatce

cus

Souhlasím  |  Nesouhlasím  |  Odpovědět
Roger  |  16. 03. 2004 08:54

Nemohl by si to po sobe autor pred publikaci aspon jednou precist, prosim? "Poradek" slov ve vete je dost utrpeni ("my potřebujeme tam dostat příkazů více" apod.).
Taky se mu trosku vytratilo cislovani prvniho seznamu kroku pri pruchodu cyklem (na ktere se nekolikrat odvolava) a paty bod dalsiho seznamu asi nema byt drobnym pismem...
Obsahove mi tentokrat clanek prijde lepsi nez obvykly "standard" z predchozich dilu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor