Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 4. diel - Dokončenie kalkulačky v Symfony

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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ěď.

 
Odpovedať
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

 
Odpovedať
20.8.2020 15:50
Avatar
Odpovedá na Miroslav Petras
Miroslav Petras:20.8.2020 17:58

Jo, tak uz vim jak to je :).

 
Odpovedať
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.

 
Odpovedať
6.10.2020 15:28
Avatar
Odpovedá 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.

 
Odpovedať
29.10.2020 16:09
Avatar
Odpovedá na Renáta Fejglová
Filip Sáblík:20.2.2021 14:27

není break, proto ze je return

 
Odpovedať
+1
20.2.2021 14:27
Avatar
Odpovedá 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.

 
Odpovedať
23.2.2021 16:19
Avatar
Odpovedá 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 :-)

 
Odpovedať
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íň.

 
Odpovedať
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?

 
Odpovedať
24.2.2021 9:24
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 23.