2011-01-07 24 views
30

Al escribir código de errores, advertencias y avisos pueden ocurrir. Sé la idea detrás de los errores. Supongo que hay una advertencia para informarle sobre algo que puede causar un error, pero ¿no es exactamente lo mismo? Supongo que un aviso no es un mensaje de algo que está haciendo bien;).diferencia entre PHP aviso y advertencia

Es sólo un poco confuso para mí. ¿Alguien puede decir la diferencia entre esos dos y la forma en que estos mensajes deben ser tratados?

+0

Advertencia significa que no es "algo que puede causar un error" sino el error que ya ocurrió. –

Respuesta

43

Una notificación es un mensaje de aviso que significa "Probablemente no debería estar haciendo lo que estás haciendo, pero te dejaré hacerlo de todos modos"

Una advertencia es un mensaje que dice "Estás haciendo algo mal y es muy probable que cause errores en el futuro, así que por favor corrígelo".

Ambos avisos y advertencias no van a detener la ejecución de su script, aunque me animo a tomar en serio y se esfuerzan por tener ni siquiera un aviso en sus aplicaciones.

26

Las diferencias se explican aquí: http://www.php.net/manual/en/errorfunc.constants.php

Specifficaly:

Errores:

Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted.

Advertencias:

Run-time warnings (non-fatal errors). Execution of the script is not halted.

Avisos:

Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script.

1

Según PHP Manual:

  • ADVERTENCIA - en tiempo de ejecución advertencias (errores no fatales). La ejecución del script no se detiene. avisos en tiempo de ejecución -
  • AVISO. Indique que la secuencia de comandos encontró algo que podría indicar un error, pero también podría ocurrir en el curso normal de ejecución de una secuencia de comandos.

Personalmente, creo que los avisos indican algunas partes del código, que potencialmente pueden provocar algunos problemas, pero que se introdujeron intencionalmente. En tales casos, se considera que el programador "sabe lo que está haciendo" y para conocer algunas características particulares de PHP (tipo de conversión, valores de inicialización predeterminados, etc.).

4

no voy a reiterar los significados específicos, que han sido cubiertos completamente por otras respuestas.

Advertencias y avisos indican diferentes niveles de "maldad" para las cosas que podrías estar haciendo mal, pero estoy con las guías PEAR/Zend sobre esto: siempre debes codificar a E_STRICT, lo que significa que nunca deberías subir ni advertencias o avisos.

Si sigue la compatibilidad con E_STRICT, la distinción entre avisos y advertencias es algo redundante si ambos se consideran "Errores no fatales que debe asegurarse de que no sucedan"; ambos son esencialmente advertencias.

5
  • AVISO: este es un mensaje corto para decir qué hacer o qué no hacer.
  • ADVERTENCIA: aparece en el tiempo de ejecución. La ejecución del código continúa.
  • ERROR: esto también ocurre en tiempo de ejecución, la ejecución finaliza.
2
  • AVISO: Es un mensaje para decir lo que debe hacer y lo que no debe hacer.
  • ADVERTENCIA: Ocurre en tiempo de ejecución. Pero no interrumpe la ejecución del código.
  • ERROR: También se produce en el tiempo de ejecución, pero la ejecución del programa no continúa y finaliza.
Cuestiones relacionadas