Comportamiento del analizador sintáctico
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_