Comportement de l'analyseur

L' analyse et l'éxecution sont désormais deux étapes complètement dissociées , et l 'éxécution intervient lorsque le code , ainsi que tous ses inclusions et pré-requis , ont été complètement analysés et validés .

Une des nouvelles conditions introduites est que les fichiers inclus et requis ( include( ) et require( ) ) doivent être syntaxiquement complets . Vous ne pouvez plus répartir différents cas de votre code dans plusieurs fichiers . Vous ne pouvez plus commencer une boucle for ou while , une condition if ou un cas switch dans un fichier , et finir la boucle ou placer les cas else , endif , case ou break dans un autre fichier .

Il est toujours valable d' inclure du code supplémentaire depuis une boucle ou dans une condition , mais les accolades de bloc {.. . } , et les éléments de la boucle doivent être dans le même fichier ou chaîne évaluée avec eval( ) .

Cela ne devrait pas perturber trop de monde , car étaler son code de cette façon est plutôt un style à éviter .

Une autre nouveauté est qu' il est plus possible de faire retourner une valeur avec un fichier requis ( require( ) ) (mais c'est plutôt rare en PHP 3.0 ) . Retourner une valeur avec un fichier inclus ( include( ) ) est toujours possible .