« 1 2 3
Autor Zpráva
imploder
Profil
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 *
Měsíček
Áno, rovnako nie je chybou ani:
if($x == $y){};echo "";
Mohol by si teda vysvetliť, aký tam majú tie nadbytočné ; význam?
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
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
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 *
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 *
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
"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
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
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
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";
  }
?>
nyní pleteš hlavu lidem ty ;)

"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 *
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
"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
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.
Alfmen
Profil *
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
Prostuduj si http://interval.cz/clanky/superglobalni-promenne-v-php/ .
imploder
Profil
Co říkáte na tohle?
Automatické adresování kousků stránky podle proměnných
« 1 2 3

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0