Autor | Zpráva | ||
---|---|---|---|
imploder Profil |
#1 · Zasláno: 24. 9. 2008, 15:52:30
Měsíček
Ale tvrzení, že je obecně jedno jestli je za } středník, chybné je. Ten prázdný příkaz tam nemá co dělat. |
||
es Profil * |
#2 · Zasláno: 24. 9. 2008, 15:54:34
Měsíček
Áno, rovnako nie je chybou ani: if($x == $y){};echo ""; Pchaním nadbytočných ; môže vzniknúť ťažko odhaliteľná chyba. Nejako mi nie je jasné, čo tým možno získať. |
||
Měsíček Profil |
#3 · Zasláno: 24. 9. 2008, 16:07:00
Reaguji na ese a částečně na implodera:
"Ale tvrzení, že je obecně jedno jestli je za } středník, chybné je." To jsem ani přímo nenapsal, píšu, že dávat " ; " za } při podmínce není chybou, ale jen štábní kulturou jednotlivce. "Ten prázdný příkaz tam nemá co dělat." Stejně jako v HTML nemá co dělat <html>, že? :-) "Áno, rovnako nie je chybou ani:" Ano. "Mohol by si teda vysvetliť, aký tam majú tie nadbytočné ; význam? " Nejsou důležité, ale nejsou chybné. (osobně se v kódu lépe vyznám, protože vím kde končí blok). "Pchaním nadbytočných ; môže vzniknúť ťažko odhaliteľná chyba. " Mohl by jsi mi ukázat příklad? "Nejako mi nie je jasné, čo tým možno získať." To je mi vcelku i jedno, pře začala u #17 příspěvku a to proto, protože mariett4 označila }; za chybné - což není, předmětem nebylo jestli je to lepší nebo ne, jestli je to prospěšné nebo ne - předmětem bylo jestli je to chybné ;) - což není. |
||
Tomasds Profil |
#4 · Zasláno: 24. 9. 2008, 16:12:46
Jako autor tohoto vlákna (o nick jsem přišel) bych si dovolil poznamenat pár věcí.
Jak jsem psal hned na začátku, cílem nebylo učit někoho používání středníků v php, dokonce jsem to nezamýšlel ani jako anketu "já to dělám takhle. Jak to děláte vy?". Chtěl jsem napsat jednoduchý návod, který bude moct použít i někdo, kdo nikdy nepoužil php, tuší za tím nějaké programování a bojí se toho. Ten návod funguje. Jediná připomínka, která tady stojí za zásah do příkladu, je REQUEST. Kdyby někdo na začátku napsal a vyargumentoval že REQUEST ne, opravil bych to a byl by klid. Hlášky typu "$_REQUEST je prasarna" mi nestojí za odpověď. Jsou tady dvě stránky příspěvků, které jsou více nebo méně offtopic. Moje stanovisko se shoduje s tím, co v poslední větě shrnul Měsíček. Jestli myslíte, že diskusí o počtu středníků někomu pomůžete, tak hurá do toho. |
||
es Profil * |
#5 · Zasláno: 24. 9. 2008, 16:21:01
Měsíček
„Mohl by jsi mi ukázat příklad? “ O pár príspevkov vyššie som dal krátky kód, ktorý sa po vložení ; za } stáva nefunkčným. V ňom je samozrejme ľahké chybu odhaliť, no v rozsiahlom kóde, kde sa za } obvykle nachádza ; ... „Nejsou důležité, ale nejsou chybné. (osobně se v kódu lépe vyznám, protože vím kde končí blok). “ Ja zasa viem, že blok konči } a na vyznanie sa v kóde mi to stačí. |
||
es Profil * |
#6 · Zasláno: 24. 9. 2008, 16:29:24
Tomasds
„Ten návod funguje.“ Kód, prezentovaný ako návod pre začiatočníkov, by však mal spĺňať prísnejšie kritériá, ako len to, či je funkčný. |
||
Měsíček Profil |
#7 · Zasláno: 24. 9. 2008, 16:32:48
"Ja zasa viem, že blok konči } a na vyznanie sa v kóde mi to stačí."
Filozofická otázka .. čím končí blok cyklu do-while? "Kód, prezentovaný ako návod pre začiatočníkov, by však mal spĺňať prísnejšie kritériá, ako len to, či je funkčný." S tím souhlasím :) |
||
imploder Profil |
#8 · Zasláno: 24. 9. 2008, 18:20:29 · Upravil/a: imploder
Měsíček
„píšu, že dávat " ; " za } při podmínce není chybou, ale jen štábní kulturou jednotlivce.“ Podle stejné logiky je taky pravda, že příkaz se neukončuje jedním středníkem, ale libovolným počtem středníků. Jejich počet je jen štábní kulturou jednotlivce. Ke štábní kultuře jednotlivce a z hlediska fungování kódu patří taky psaní příkazu echo NULL (následovaném taktéž libovolným počtem středníků) podle potřeby na různá místa programu. :P Myslím, že tudy cesta nevede. „Stejně jako v HTML nemá co dělat <html>, že? :-)“ Naopak, tag <html> do HTML souboru patří a je tam vyžadován. Přirovnal bych takové nelogické zbytečnosti, se kterýma to však v daném případě "stejně funguje", spíš k psaní sice v daném místě funkčně neškodného a validního, ale zbytečně prasáckého kódu. http://kesolim.sweb.cz/validator_je_prima/ >>Mohol by si teda vysvetliť, aký tam majú tie nadbytočné ; význam? „Nejsou důležité, ale nejsou chybné. (osobně se v kódu lépe vyznám, protože vím kde končí blok).“ ; ukončuje příkaz. Blok příkazů začíná { a končí }. Je to takhle jednoduché a ty jenom pleteš lidem hlavu. „Filozofická otázka .. čím končí blok cyklu do-while?“ Začíná znakem { ončí znakem }, stejně jako každý jiný blok. Blok příkazů je to, co je mezi složenými závorkami. Tak to funguje v PHP, v C i v Baltíkovi. Podle filozofie fungování těch jazyků tam středník nemá co dělat. es „Ja zasa viem, že blok konči } a na vyznanie sa v kóde mi to stačí.“ jj bohatě to stačí. A např. v Baltíkovi žádné středníky nejsou konec bloku se dá poznat bez problémů. Dokonce líp, protože složené závorky se barví podle míry zanoření a je tak poznat, když nějaká schází nebo přebývá. To je čistě věc editoru a může to klidně fungovat i v obyčejném textovém kódu v PHP nebo C. Na PSPadu je dobré, že když najedu na závorku, tak zvýrazní tu, ke které patří. Nechápu, jak to programátorský editor může nemít, taková jednoduchá věc a hodně to pomáhá. |
||
Chamurappi Profil |
#9 · Zasláno: 24. 9. 2008, 18:41:48
Reaguji na Měsíčka:
„Stejně jako v HTML nemá co dělat <html>, že? :-)“ K tomu bych to nepřirovnával. Reaguji na implodera: „tag <html> do HTML souboru patří a je tam vyžadován“ Není. Teoreticky není nezbytný a prakticky je zbytečný. „psaní sice v daném místě funkčně neškodného a validního, ale zbytečně prasáckého kódu“ Při tom odkazuješ na Milošovu stránku, která ale validní není. Demonstruje slabinu W3C Validátoru, nikoliv nevhodné možnosti validního kódu. |
||
Měsíček Profil |
#10 · Zasláno: 24. 9. 2008, 18:46:56 · Upravil/a: Měsíček
Podle stejné logiky je taky pravda, že příkaz se neukončuje jedním středníkem, ale libovolným počtem středníků.
Jestliže k tomu máš svůj osobní důvod, nevidím problém. podle potřeby na různá místa programu. :P Myslím, že tudy cesta nevede. Běž se podívat na builder.cz kde profesionální programátoři si vymýšlejí svojí vlastní štábní kulturu (mezi nimi je i {};) a kolik vydělávají? Přes 70 000,- ;) Takže řekl bych, že tudy cesta vede. ( http://www.volny.cz/valerian/index.htm ) Přečti si zde CV - podrobně ;) ; ukončuje příkaz. Blok příkazů začíná { a končí }. Je to takhle jednoduché a ty jenom pleteš lidem hlavu. Ano " ; " ukončuje příkaz a může v některých případech ukončovat blok. "Začíná znakem { ončí znakem }, stejně jako každý jiný blok." Opravdu cyklus do-while končí }? V tom případě si zkus tohle: <?php do { echo "Ahoj"; } ?> "Podle filozofie fungování těch jazyků tam středník nemá co dělat. " Kdyby tam za všech případů neměl co dělat tak bude brán jako chybný - jakto, že kompilátor nic nehlásí a parser PHP taky ne? "jj bohatě to stačí." Taky si myslím, a už dost žvástů na toto téma. "Na PSPadu je dobré, že když najedu na závorku, tak zvýrazní tu, ke které patří. " Můj " Notepad2 " to má ;) |
||
es Profil * |
#11 · Zasláno: 24. 9. 2008, 19:08:18
„Ano " ; " ukončuje příkaz a může v některých případech ukončovat blok.“
„Kdyby tam za všech případů neměl co dělat tak bude brán jako chybný - jakto, že kompilátor nic nehlásí a parser PHP taky ne? “ Trochu asi záleží na tom, ako je blok definovaný. }; však znamená koniec bloku a za ním vložený prázdny príkaz. Vložením prázdneho príkazu, až na nejaké výnimky, nevzniká syntaktická chyba, preto „kompilátor nic nehlásí a parser PHP taky ne“ Ak však niekto chce silou-mocou do kódu vkladať nadbytočné prázdne príkazy, nech to robí sám pre seba, no nech to neuvádza ako príklad pre začiatočníkov, alebo nech nezavádza tvrdením, že to je obrazne povedané nejaké lepšie ukončenie bloku. |
||
Měsíček Profil |
#12 · Zasláno: 24. 9. 2008, 19:20:41
"Trochu asi záleží na tom, ako je blok definovaný. "
Trochu víc ;) "; však znamená koniec bloku a za ním vložený prázdny príkaz. " Ano, ale jen by mě zajímalo jak to dokážeš, mohl by jsi mi najít nějákou větu v dokumentaci, která by ti to potvrdila? "Vložením prázdneho príkazu, až na nejaké výnimky, nevzniká syntaktická chyba, preto „kompilátor nic nehlásí a parser PHP taky ne“ " Toho jsem si očividně všiml. "Ak však niekto chce silou-mocou do kódu vkladať nadbytočné prázdne príkazy," Nadbytečné je echo "Ahoj";;;;;;; ovšem nikoli if(){};. "nech to robí sám pre seba, no nech to neuvádza ako príklad pre začiatočníkov, " Všimni si pořádně příspěvku #17 ;) já to neuvádím pro začátečníky a i kdybych to v některých tématech uvedl, tak v tom nevidím nic špatného - každý má rozum, ať se zařídí jak chce, měl by vidět obě dvě strany. "alebo nech nezavádza tvrdením, že to je obrazne povedané nejaké lepšie ukončenie bloku." Zase překrucuješ. Není to lepší není to horší, je to jiné a není to chybné. |
||
imploder Profil |
#13 · Zasláno: 24. 9. 2008, 22:33:23
Nebudu to radši už přirovnávat k HTML, protože to přirovnání poněkud skřípe. Rozhodně ale nesouhlasím s tím, že se to podobá vynechání některého standartního prvku, jako je <html>.
Měsíček „Nadbytečné je echo "Ahoj";;;;;;; ovšem nikoli if(){};.“ Nadbytečné je obojí. „Opravdu cyklus do-while končí }? V tom případě si zkus tohle: <?php do { echo "Ahoj"; } ?> nyní pleteš hlavu lidem ty ;)“ To teda nepletu. Blok začíná { a končí } nezávisle na cyklu, který se na něj použije. Blok se při cyklení chová stejně jako by šlo o jeden příkaz. Je to blok příkazů, nikoliv cyklus. Do cyklu se může dát jak jeden příkaz, tak celý blok. Je mi líto, ale seš to zase ty kdo plete lidem hlavu. „Kdyby tam za všech případů neměl co dělat tak bude brán jako chybný - jakto, že kompilátor nic nehlásí a parser PHP taky ne?“ Není to syntaktická chyba. Je to akorát blbost. Ať už to (za jakýmkoliv účelem) dělají sebeplacenější programátoři, rozhodně nejsou tak dobře placení proto, že vkládají za bloky nadbytečné prázdé příkazy. Původní otázka nebyla jestli je možné vložit za konec bloku prázdný příkaz. Otázka byla jak se ukončuje blok - jestli se na to používá středník - a odpověď je ne. Případná existence středníku za znakem } s ukončením bloku vůbec nesouvisí. >> (es) "; však znamená koniec bloku a za ním vložený prázdny príkaz. " „Ano, ale jen by mě zajímalo jak to dokážeš, mohl by jsi mi najít nějákou větu v dokumentaci, která by ti to potvrdila?“ Proč by měla dokumentace popisovat význam jakékoliv sekvence znaků, která zrovna někoho napadne? PHP ukončuje blok znakem } a jestli je za ním ; tak je to prostě prázdný příkaz. Takto to PHP interpretuje. Jestli s tím nesouhlasíš, tak dokaž že ne. |
||
Časová prodleva: 4 měsíce
|
|||
Alfmen Profil * |
#14 · Zasláno: 15. 1. 2009, 17:02:34
Můžu se zeptat, když mám ten příkaz
if ($_REQUEST['stranka'] == 'uvod' ) { include ("uvod.html"); }; Co znamená ta ($_request['STRANKA'] == 'uvod' ) ? Píše mi to, že jí mám nějak definovat, ale nevím jak. |
||
Měsíček Profil |
#15 · Zasláno: 15. 1. 2009, 17:19:01
Prostuduj si http://interval.cz/clanky/superglobalni-promenne-v-php/ .
|
||
imploder Profil |
#16 · Zasláno: 15. 1. 2009, 18:45:49 · Upravil/a: imploder
Co říkáte na tohle?
Automatické adresování kousků stránky podle proměnných |
||
Časová prodleva: 15 let
|
0