Chování parseru

Parsing a provádění kódu jsou nyní dva naprosto oddělené kroky , nic z kódu v souboru se neprovádí dříve , než je úspěšně provedena úplná syntaktická analýza celého souboru a všeho , co je třeba .

Jeden z nových požadavků , které vyvstaly tímto rozdělením , je , že všechny soubory připojené prostřednictvím " require " a "include " nyní musí být syntakticky úplné . Již nelze rozložit různé části řídicích konstrukcí přes hranice souborů . Tj . nelze začít cyklus for nebo while , větvení if nebo switch v jednom souboru a ukočit je ( resp . pokračovat pomocí else , endif , case nebo break ) v souboru jiném .

Zůstává zcela legální vložit další kód do cyklů nebo jiných řídicích struktur , pouze řídicí klíčová slova a odpovídající složené závorky { .. . } musí být ve stejné kompilační jednotce (souboru nebo řetězci zpracovaném pomocí eval( ) ) .

Toto neškodí tolik jako výše uvedené rozkládání kódu , přesto to může být považováno za velmi špatný styl .

Jinou věcí , která již není možná , je vzácně vídané vracení hodnot ze souborů připojených pomocí " require " . Vracení hodnot ze souborů připojených " include " je možné i nadále .