Omezení vnořených IF – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Omezení vnořených IF – PHP – Fórum – Programujte.comOmezení vnořených IF – PHP – Fórum – Programujte.com

 

MilanL+1
Grafoman
18. 5. 2020   #1
-
0
-

Ahoj,

poslední dobou jsem se vrátil k jednomu staršímu WEB projektu a narazil jsem v php na takovou věc,

mám na stránce 3 menší tabulky ke každé řeším 3 typy submitů POST
V PHP otestuji existenci POST a následně chci udělat rozhodovací strom 3tabulky x 3typy submitů, samozřejmě nějaké kontrolní podmínky ještě uvntiř, narazil jsem, ale na to, že mi to nedovolí všech 9 submitů v té podmínce existence POST, musel jsem to rozdělit, v okamžiku kdy tam dám víc než 6 nebo 7 podmínek na submity mi to vyhodí chybu parsování.

Je to omezení PHP nebo něco v konfigu?

Nahlásit jako SPAM
IP: 185.112.167.–
Kit+15
Guru
18. 5. 2020   #2
-
0
-

#1 MilanL
Zcela určitě tam máš chybu syntaxe. Počet podmínek není omezen.

Nahlásit jako SPAM
IP: 46.135.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
MilanL+1
Grafoman
18. 5. 2020   #3
-
0
-

#2 Kit
dík za info,

hm divný když jsem to rozdělil bylo to v pořádku, každopádně nejspíš taky blbne editor (Sublime text 3.2),

při těch více ifech mi nesváže ten první hlavní if

Nahlásit jako SPAM
IP: 185.112.167.–
MilanL+1
Grafoman
19. 5. 2020   #4
-
0
-

#3 MilanL
ha tak jsem zjistil že mi to rozhazovali komentáře zarovnané moc doleva

Nahlásit jako SPAM
IP: 185.112.167.–
Kit+15
Guru
19. 5. 2020   #5
-
0
-

#4 MilanL
Tohle moc nechápu. Takže za to mohlo omezení editoru?

Nahlásit jako SPAM
IP: 46.135.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4016 příspěvků
19. 5. 2020   #6
-
0
-

Priste dej kod, idealne spustitelny. Neni problem najit chybu parsovani.

Ja to edituji v textovem editoru, tak mam s hledanim chyb bohate zkusenosti. Nejcastejsi problemy:
- zapomenuty strednik (protoze z js jsem zvyknuty, ze js strednik odpusti)
- zapomenuta nebo navic slozena zavorka }
- v podmince if zapomenuta kulata zavorka ). To pak hlasi error  na konci souboru, treba, velmi blbe se to hleda :)
- chyba v zapise ternalnich operaci, takove to if-else psane pomoci ? a :, x = a ? : 1 : 0. Zapomenuty ? nebo : nebo spatne ozavorkovane.
- pri prepisovani nazvu promenych na nekterou zapomenu (ale uz jsem se naucil pouzivat pri tom vyhledavani a nahrazovani textu, F7 ve Faru)
- zapomnuty apostrof, nebo chybne apostrofy pri spojovani stringu. Ale to mi resi casto obarvovani syntaxe.
A dalsi chyby mne ted nenapadaji.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
Kit+15
Guru
19. 5. 2020   #7
-
0
-

#6 peter
Tyhle chyby mi odhalí už editor tím, že ten kus kódu chybně odsadí.

Nahlásit jako SPAM
IP: 46.135.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
MilanL+1
Grafoman
20. 5. 2020   #8
-
0
-

#6 peter
jo ty chyby znám snažím se si to  hlídat, navíc sublime si to hned páruje takže dáš začáteční závorku je jedno jakou a hned to udělá i koncovou a ty vkládáš mezi ně, to samé u uvozovek a apostrofů. Jen při přidání doprostřed hotové řádky podle umístění to někdy udělá trošku jinak než člověk potřebuje.

horší je že si nemůžu zvyklnout na == v podmínkách furt tam cpu =  a pak se divím jak to blbne, protože to neohlásí chybu, není to syntaktická chyba.

dík za rady.

Nahlásit jako SPAM
IP: 91.139.9.–
Kit+15
Guru
20. 5. 2020   #9
-
0
-

#8 MilanL
Zvykni si na `===`

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Paja
~ Anonymní uživatel
25 příspěvků
21. 5. 2020   #10
-
0
-

Tak na takove veci upozorni staticka analyza kodu a clovek to nemusi ladit az po spusteni.

Nahlásit jako SPAM
IP: 84.42.247.–
Kit+15
Guru
21. 5. 2020   #11
-
0
-

#10 Paja
Dobrý editor na to upozorní ješte před statickou analýzou.

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Paja
~ Anonymní uživatel
25 příspěvků
21. 5. 2020   #12
-
0
-

#11 Kit
Jojo, osobne doporucuju PHPStorm, ale asi to bude umet kazde modernejsi IDE.

Nahlásit jako SPAM
IP: 84.42.247.–
peter
~ Anonymní uživatel
4016 příspěvků
21. 5. 2020   #13
-
0
-

#8 MilanL
== je standard v mnoha jazycich, typove je ===

Jen nektere opakuji podle pascalu a=b, protoze pascal mel a:=b. Takze to bylo v pohode. Ale pak se prislo na to, ze pro prirazeni je lepsi rovnitko. A najednou se preslo u podminek na ==.
= tusim pouziva jeste python a visual basic. Z tech, co jsem nekdy pouzil :)

Pak se jeste pro prirazeni/spojovani pouziva = php/js, += php/js a .= php. Tady to dava logicky smysl, pouzit rovnitko a nedava smysl pouzit rovnitko v podmince. Protoze oba jazyky umoznuji v podmince priradit. coz se hodne casto pouziva, protoze do ifko vykonava jen do prvni kladne vyhodnoceme podmince pri spojeni s ||. 

if (c==3 || a=funkcexyz() && a==1 || a==c && bb==2)

// je to pak podobne zapisu:
bool = false;
if (c==3) {...}
else { a=funkcexyz(); if (a==1) {...} else (a==c && bb=2) {...} }

// vyhodou je, ze nezatezujes program vyhodnocovanim funkce, 
// ktera muze trvat nejaky cas. To by byl alternativni zapis tento
a=funkcexyz();
if (c==3 || a==1 || a==c && bb==2)
// tady tu funkci musis provest vzdy, kvuli podmince
// kdezto v prvnim pripade IF skonci treba castokrat podminkou c==3
// a na volani funkce nedojde

Jako, je to mysleno dobre, ale prijde mi prehlednejsi pouzivat == a === do podminek.

Nahlásit jako SPAM
IP: 193.84.207.–
Kit+15
Guru
21. 5. 2020   #14
-
0
-

#12 Paja
Umí to i textové editory - včetně barvení syntaxe.

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
gna
~ Anonymní uživatel
1891 příspěvků
21. 5. 2020   #15
-
0
-

#13 peter
Kam ty na to chodíš?   

Nahlásit jako SPAM
IP: 213.211.51.–
Kit+15
Guru
21. 5. 2020   #16
-
0
-

#13 peter
Používají to i jazyky založené na SQL. Python to má stejně jako C.

Prasárny, které zkracují kód na úkor čitelnosti, není radno používat. Také bys mohl schytat pár facek od kolegů.

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
MilanL+1
Grafoman
22. 5. 2020   #17
-
0
-

#13 peter
#16 Kit
jj taky si složitější podmínky radši rozdělím, nikdy nevím kdy bude potřeba něco změnit, nebo po jakém čase se k tomu vrátím, pak strávím 1/2 času potřebného k úpravě jen tím že budu louskat co tím bylo myšleno, a jiný kolega ještě déle.

Nahlásit jako SPAM
IP: 91.139.9.–
Kit+15
Guru
22. 5. 2020   #18
-
0
-

#17 MilanL
Hodně podmínek se dá zrušit pomocí výrazů. Čitelnost tím výrazně vzroste. Nikdy například nedefinuji proměnné uvnitř bloku. Téměř každé else se dá nahradit ternárním výrazem. Pokud ne, tak je to prakticky vždy práce pro switch.

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Kit+15
Guru
22. 5. 2020   #19
-
0
-

#1 MilanL
Ještě k původnímu problému: Pro každý form používám samostatný kontrolér (třídu) takže se tím vyhnu ifům i svičům. Proto se s tím nesetkávám.

Nahlásit jako SPAM
IP: 46.135.82.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý