Autor | Zpráva | ||
---|---|---|---|
Pavel Trololo Profil * |
#1 · Zasláno: 10. 1. 2015, 22:25:37 · Upravil/a: Moderátor (editace znemožněna) 11. 1. 2015, 13:43:44
Ahoj, co jsem měl pocit, že jsem pochopil, tak při splněné podmínce php už nepokračuje a přeskočí vše až ke složené závorce, která podmínku ukončuje. Nebo si vybere souhlasné elseif nebo if.
Ale co nechápu je, proč hlasí php chybu v konstrukci ELSE, když tam ani koukat nepotřebuje a může mu být jedno co tam je. Nebo kotroluje vždy všechno? |
||
mimochodec Profil |
#2 · Zasláno: 10. 1. 2015, 22:27:14
Bude lepší, když ukážeš příklad něčeho, kde tu chybu dostáváš.
|
||
Tomáš123 Profil |
#3 · Zasláno: 10. 1. 2015, 22:29:45
Pavel Trololo:
„v konstrukci ELSE, když tam ani koukat nepotřebuje“ Najprv sa celý skript načíta a až potom sa vyhodnocujú podmienky. |
||
Pavel Trololo Profil * |
#4 · Zasláno: 10. 1. 2015, 23:20:12 · Upravil/a: Pavel Trololo
mimochodec:
Je možné, že jsem tam měl nějakou špatnou závorku, už fakt nevím. Už jsem to smazal, ale potřeboval bych to vědět jestli to tedy přeskočí nebo ne. Tomáš123: Hádáš, nebo jsi si jist? Mělo by to zpracovávat postupně, ne? Tak jsem to zkusil a asi to kontroluje, ale co mu je do toho? Proč prostě to php to nepřeskočí až po závorku. Bylo by to tedy efektivnější. |
||
Alphard Profil |
Pavel Trololo:
„Tak jsem to zkusil a asi to kontroluje, ale co mu je do toho? Proč prostě to php to nepřeskočí až po závorku. Bylo by to tedy efektivnější.“ :-) Už jste si zkoušel napsal interpret nějakého jazyka? PHP je navržené tak, že prvně parsuje daný script a až pak ho vykonává, existuje pro to několik dobrých důvodů. Ve chvíli parsování podmínky interpret ještě neví, jakou větví později půjde. A i kdyby to šlo udělat jinak, je toto chování správné, programátor by měl být na chyby upozorněn co nejdříve (jak je lze rozpoznat). Doplňuji, ještě jsem vám našel docela hezkou prezentaci www.slideshare.net/philipo/phpcompilerinternals-090824022750phpapp02. |
||
Pavel Trololo Profil * |
#6 · Zasláno: 10. 1. 2015, 23:58:11 · Upravil/a: Pavel Trololo
Alphard:
Bohužel nesouhlasím, toto chování není správné. Správnost je jen úhel pohledu a často názor většiny, avšak nikoli všech. Dělám script, kde při nesplnění podmínky potřebuji relativně složitý úkon a velmi bych ocenil, kdyby to prostě bylo přeskočeno. Ale děkuji za názor. Ta prezentace je opravdu hezká, díky. :) V každém případě by tam pro určité případy mohla být klauzule kompletního ignorování. |
||
Alphard Profil |
Pavel Trololo:
„kde při nesplnění podmínky potřebuji relativně složitý úkon“ Tak náročný, že je v těle té podmínky napsaný hádám aspoň na tisíc řádků? Tak to je zase špatně. Doporučuji danou část vyčlenit a buď includovat, nebo volat funkci*. Takto volané scripty se začnou parsovat až v runtime fázi volajícího, tj. jen když jsou potřeba. *Když jsem to psal, odlišoval jsem include a volání funkce z pohledu platnosti proměnných. Kvůli neparsování kódu je třeba i případnou funkci includovat, na což se v OOP může hodit autoload. |
||
Pavel Trololo Profil * |
#8 · Zasláno: 11. 1. 2015, 07:46:33
Alphard:
Jasně! Díky! Tohle jsem přesně potřeboval! Při include se to obejde a vůbec nenačte, to mi nedošlo. Dík |
||
Časová prodleva: 10 let
|
0