2011-05-31 15 views

Respuesta

7

Porque su sintaxis se analiza primero en un intento de tokenize, antes de que el intérprete de PHP pueda comenzar.

+0

El problema está en el analizador sintáctico, no en el tokenizador; los errores de sintaxis no se pueden detectar en el tokenizer propiamente dicho. –

+0

@Ignacio Lo siento, no estaba claro, voy a hacer una edición. – alex

4

Antes de la página es en realidad interpretado por PHP, que se ejecuta a través de un preprocesador. Eso recoge cualquier error en su página antes de que realmente comience a ejecutarse y preforma una gran cantidad de otras operaciones para preparar su secuencia de comandos para la interpretación.

Esto asegura que la sintaxis de los scripts es correcta antes de que ocurra algo y es por eso que PHP arroja un error incluso cuando nunca se invoca su función.

+0

¿el preprocesador convierte el código en algún tipo de código de bytes o algo así? –

+0

No estoy seguro de los detalles, pero hay una presentación interesante sobre todo aquí: http://www.slideshare.net/ravirajforyou/how-php-works. El ciclo de vida de la página PHP está en la diapositiva 3. – Sam152

+0

muchas gracias Sam –

3

El problema no tiene nada que ver con la forma en que se ejecuta PHP (es bytecompiled, dicho sea de paso ...), sino cómo se analiza el código. Con ese error allí, el analizador de PHP no puede construir un programa en funcionamiento en la memoria y le notifica el error de sintaxis.

Cuestiones relacionadas