Autor Zpráva
filcuk
Profil
Dobrý den,

musím předem upozornit, že tuto diskuzi jsem si pročetl, přesto myslím, že mi to nepomůže.

1) napsal jsem stránku se správou souborů a umístil do 'default' ve switchi
2) napsal jsem switch s akcemi jako smazat, přejmenovat, ...
3) ukončení case, break, jsem nahradil goto, které jsem poslal do 'default', kde se vypisuje obsah stránky

Efekt? Při jakékoliv akci se mi výsledek vypíše na té samé stránce. Velmi přívětivé a šetří to mnoho času.
> ovšem takhle to funguje jen na lokálním serveru.

4) pochopil jsem, že goto je jen vtip

-----------------------------------
| Stránka smazána! <= case delete: ... goto main;
| ````````````````
| <= default:
| 1) Uvod (del)(ren)(...) <= main:
| 2) Obsah (del)(ren)(...)
| 3) .....
|

A konečně, dotaz: Je možné, že nebudu muset přepisovat celý switch do úplně jiné struktury?

Děkuji ;)
Joker
Profil
filcuk:
ukončení case, break, jsem nahradil goto, které jsem poslal do 'default', kde se vypisuje obsah stránky
Proč?
To popsané použití goto mi přijde jen jako zbytečné zesložitění toho skriptu. Když tam žádné goto nebude a ten společný kód (vypsání obsahu) bude za switchem, výsledek bude stejný a bude to daleko jednodušší.

Mimochodem, nakolik se skoky v některých situacích berou na milost (byť goto je v PHP lepší nepoužívat vůbec), uvedená konstrukce je špatně úplně vždycky.
Skok dovnitř bloku je konstrukce, která se při výuce strukturovaného programování uvádí jako příklad toho, co se nemá dělat.
filcuk
Profil
Eh, to jsem si naběhl, já s break ve switchi zacházel jako s exit().

Omlouvám se za zbytečný post ... takhle to dopadá, když se někdo učí PHP odzadu :)

Edit: Moment, ono break funguje jako exit()? No rozhodně jsem si celý skript ještě více pokonil.
Alphard
Profil
filcuk:
Edit: Moment, ono break funguje jako exit()? No rozhodně jsem si celý skript ještě více pokonil.
Break ukončí provádění switche, ale ne celého skriptu.

napsal jsem switch s akcemi jako smazat, přejmenovat
Přijatelné pro menší skripty, u velkých aplikací se to samozřejmě dělá jinak.

Jestli je váš script možné osekat na rozumnou délku, dejte sem ukázku, ať se bavíme konkrétně.
DoubleThink
Profil *
Příliš dlouhý nebo složitý switch a samozřejmě jakékoliv použití goto indikuje nevhodný návrh skriptu.
Můžou za to samozřejmě školy a staré návody, které si libují v procedurálním programování.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0