2010-03-01 23 views
19

A veces, mientras que la codificación en PHP que obtenemos de análisis sintáctico o de sintaxis errores como los que:Lista de todos los posibles errores de PHP

Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in /var/www/example/index.php on line 4 

Me gustaría saber, si hay una lista de todos los posibles errores que PHP intérprete puede salida. Busqué en php.net, pero no pude encontrar tal cosa. Necesito esta lista para fines académicos.

+0

que el error es probablemente sólo porque se le olvidó cerrar su línea anterior. – Layke

+3

@Laykes: Creo que tiene que volver a leer la pregunta;) –

+0

Sí, lo hice intencionalmente, para obtener el ejemplo de un error. Estoy más interesado en obtener la lista actual de posibles mensajes de error, no en resolverlos, ese es otro problema :) –

Respuesta

9

No, no hay una buena manera. Incluso el grep sugerido para zend_Error() es inútil. Los errores del tipo que se muestra en la pregunta son principalmente generados por el generador de analizadores de bisontes y PHP simplemente los saca de allí. Suceden cosas similares con los errores informados por el sistema operativo (como errores al abrir archivos). Los desarrolladores de PHP realmente no pueden generar una buena lista para estos ya que los errores dependen del sistema operativo en el que se ejecuta y las versiones utilizadas durante la compilación.

La única acumulación de zend_error() y php_Error_docref() puede mostrarle que es una descripción general de posibles tipos de error, pero de lejos no todos los mensajes de error.

2

No estoy al tanto de dicha lista, pero siempre se puede descargar o fuentes de pago y envío php y hacer algo como

find . -name "*.c" | xargs grep "zend_error" 
+0

Lo he considerado. Si no hay documentación sobre errores, tendré que hacerlo. –

5

No sé si existe una lista completa de los posibles errores de PHP, sino de errores del analizador se debe obtener de la lista de fichas de PHP Analizador

http://php.net/manual/en/tokens.php

aquí es lo que dice el manual:

Various parts of the PHP language are represented internally by types like T_SR. PHP outputs identifiers like this one in parse errors, like "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10." You're supposed to know what T_SR means. For everybody who doesn't know that, here is a table with those identifiers, PHP-syntax and references to the appropriate places in the manual.

+0

¡Gracias también esta lista es muy útil para mí! –

+0

-1 esto es bueno saberlo, pero ¿cómo se relaciona con los mensajes de error? –

+0

@Pekka: Este enlace le da la lista de tokens por nombre, para que pueda ver qué token en su código invoca un error de analizador, por lo tanto puede resolver su error de análisis, lea la breve introducción en la parte superior de la página en http : //php.net/manual/en/tokens.php –

0

Esto me da 1346 visitas en la última fuente de PHP (incluidos los duplicados). Puede ser una buena forma de hacerlo, sin embargo, la lista está lejos de completarse debido a los motivos expuestos por @johannes.

Por otro lado, va a ser muy difícil definir un tipo específico de error de análisis de todos modos, como me imagino que son compilados por analizador en tiempo de ejecución, y no figuran en cualquier lugar de la fuente.

¿Puede explicar en qué necesita esto? Tal vez pueda definir una "subclase" de errores que ya es suficiente para lo que necesita.

Cuestiones relacionadas