NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 4 - Dokončení kalkulačky v Symfony

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
mirextichy
Člen
Avatar
mirextichy:14.3.2019 7:19

Kalkulačka, kterou jsem "postřípkoval" z autorových lekcí mi zaboha nefungovala (mám předposlední Wampserver64), pořád nějaký exception! Tak jsem se naštval, stáhnul hotovou zip verzi od autora, svoji jsem smazal (já osel) a rozbalil staženou.A stále exception:

(2/2) ErrorException
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?
in UnitOfWork.php line 2718

Chvíli jsem brousil po webu a pak mně to napadlo! ...přepni z PHP 7.3 na PHP 7.1 a hle: vše je OK :)! Kalkulačka kalkulí!

Pro autora: jaké je řešení? Předem díky za odpověď.

 
Odpovědět
14.3.2019 7:19
Avatar
Miroslav Petras:20.8.2020 15:50

Ahoj,
prosimte, jak dojde k tomu, ze se zavola metoda isDividedByZero() ?
Nikde v kodu jeji volani nevidim ...

Diky

 
Odpovědět
20.8.2020 15:50
Avatar
Odpovídá na Miroslav Petras
Miroslav Petras:20.8.2020 17:58

Jo, tak uz vim jak to je :).

 
Odpovědět
20.8.2020 17:58
Avatar
MiraJ
Člen
Avatar
MiraJ:6.10.2020 15:28

V sablone lepe nez "if result" je pouzit "if result is not empty", jinak se pri vysledku rovno 0 nezobrazi vysledek.

 
Odpovědět
6.10.2020 15:28
Avatar
Odpovídá na mirextichy
Renáta Fejglová:29.10.2020 16:09

V modelu Calculator uvnitř funkce calculate není u switch rozhodování použit žádný break, který by ukončoval case větve. Syntaxes PHP 7.3 s tím má pravděpodobně problém a ptá se, zda je to záměr nebo chyba.

 
Odpovědět
29.10.2020 16:09
Avatar
Odpovídá na Renáta Fejglová
Filip Sáblík:20.2.2021 14:27

není break, proto ze je return

 
Odpovědět
+1
20.2.2021 14:27
Avatar
Odpovídá na Filip Sáblík
Renáta Fejglová:23.2.2021 16:19

Ano, já chápu, ale PHP interpreter s tím má stejně od verze 7.3 problém. I když to je (byla) naprosto validní alternativa použít return místo break nebo u některých větví switche break vynechat. Takže v tomto případě buď "otrocky" doplnit break, i když zde není nutný, ať je kontrola syntaxe spokojená, nebo odchytit a třeba zahodit tuto specifickou vygenerovanou výjimku.

 
Odpovědět
23.2.2021 16:19
Avatar
Odpovídá na Renáta Fejglová
Filip Sáblík:23.2.2021 18:36

Na to ti asi exaktně neodpovím. Ale Syntaxe switche by implicitně měla obsahovat break; pro ukončeni procházení switche. Proto se to PHP interpreteru nelíbí. Jenže zde získáš stav z funkce návratovou funkcí return, čímž nesplníš potřebu interpreteru po break, ale z funkce dostaneš co potřebuješ.

podle mně tu řešíš spíš nějakou vnitřní potřebu (možná OCD) , naplnit potřebu interpreteru. Ačkoli dopad na funkčnost a čistotu tu není žádný, tak buď si dopiš break, nebo si nastav výjimku :-)

 
Odpovědět
23.2.2021 18:36
Avatar
Renáta Fejglová:23.2.2021 18:48

Myslím, že se nechápeme. Neřeším čistotu kódu. Jen jsem reagovala jsem na původní dotaz tazatele, proč dostává od PHP uvedené verze výjimku bez použití breaku. Tu výjimku generuje sám interpret (odzkoušeno) a pokud se jí tazatel chce zbavit, tak buď musí upravit kód nebo ji odchytit Nic víc, nic míň.

 
Odpovědět
23.2.2021 18:48
Avatar
Filip Sáblík:24.2.2021 9:24

http://sandbox.onlinephpfunctions.com/…b8950ccd6da8

asi ne, nicméně jsem zjednodušil tvůj "problém" a hodil do PHP sandboxu - viz. link výše, kde lze otestovat části kódu, případně získat chybová hlášení. PHP verze lze pohodlně přepínat...

Projel jsem kód v PHP 7.3.,7.4., 8.*
a bez problému.

Jinak kalkulačku jsem si u sebe rozjížděl taky, a vše bez problému. Můžeš sem hodit screen co konkrétně se děje?

 
Odpovědět
24.2.2021 9:24
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 23.