El proceso de análisis sintáctico y la
ejecución son ahora dos pasos completamente separados, no
se procederá a la ejecución del código de
cualquier archivo hasta que éste en su totalidad,
asà como todo el código requerido se haya analizado
completa y satisfactoriamente.
Uno de los nuevos requisitos introducidos con esta
separación es que todos los archivos requeridos y de
inclusión tienen que ser sintácticamente completos
ahora. Ya no es permitida la separación de diferentes
segmentos de una estructura de control a través de varios
archivos. Esto quiere decir que ahora no puede iniciar un
ciclo for o while, una
sentencia if o un
bloque switch en un archivo, y tener el final
del ciclo,
sentencias else, endif,
case o break en un archivo
diferente.
Aun es perfectamente legal incluir código adicional al
interior de ciclos u otras estructuras de control,
únicamente las palabras claves de control y los corchetes
correspondientes {...} tienen que estar en la
misma unidad de compilación (archivo o cadena procesada
por eval()).
Esto no debe generar una repercusión significativa ya que
separar el código de esta manera debe ser considerado como
muy mal estilo, en cualquier caso.
Algo más que ya no es posible, aunque es rara veces visto
en código PHP 3, es devolver valores desde un archivo
requerido. Devolver un valor desde un archivo de inclusión
es posible aun.