L'analyse et l'exécution sont désormais deux étapes complètement dissociées, et l'exécution intervient lorsque le code, avec tous ses inclusions et pré-requis, a été complètement analysé et validé.
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 dans la même chaîne évaluée avec eval().
Cela ne devrait pas perturber trop de monde car éclater son code ainsi est de toute façon considéré comme un très mauvais style de programmation.
Une autre nouveauté est qu'il n'est plus possible de faire retourner une valeur avec un fichier requis (require()) (mais c'est plutôt rare en PHP 3). Retourner une valeur avec un fichier inclus (include()) est toujours possible.
Précédent | Sommaire | Suivant |
Migration des fichiers de configuration | Niveau supérieur | Rapport d'erreur |