¿Qué tan importantes son realmente los avisos de PHP?

7

Recientemente, activé todos los mensajes de error posibles con error_reporting(-1); , en mi proyecto PHP. Por supuesto, de inmediato recibí muchos mensajes. Por ejemplo:

  

Aviso: Variable no definida: foo en /.../file.php en la línea 205

Entonces comencé a actualizar mi código para deshacerme de todos los avisos. Principalmente, agregando isset($foo) y haciendo $foo = NULL;

Por lo tanto, me pregunto. ¿Qué tan importantes son estos avisos realmente? Quiero decir, si la variable $foo no está configurada, entonces debería ser falsa / nula / no establecida por defecto ... ¿así que técnicamente el código funciona ?!

Si quisiera deshacerme de todos los avisos, ¿hace el proceso más rápido o más lento (porque estoy agregando más código, isset($foo) , $foo = NULL , etc.)? ¿Cómo manejan estos avisos o les prestan atención?
Supongo que la pregunta más importante es: ¿el código debe escribirse de manera tan estricta que nunca genere avisos o advertencias?

    
pregunta Kalle H. Väravas 30.08.2011 - 23:49

4 respuestas

1

Si no tiene ningún efecto en la funcionalidad de su código, ahora o en el futuro, no pierda su tiempo.

Si la línea de código "ofensiva" en particular no causa ningún problema real, ¿cuál es su incentivo para "arreglarlo"? No está resolviendo ningún problema, simplemente está satisfaciendo a un intérprete demasiado entusiasta.

A la inversa, si la línea que genera la advertencia está dando lugar a algunas operaciones no deseadas o afecta el estado de un método, por todos los medios, corríjalo.

    
respondido por el Glenn Nelson 31.08.2011 - 00:52
8

Los avisos están ahí para llamar la atención sobre cosas que podrían ser problemas. Por ejemplo, muchos errores pueden provenir de errores tipográficos: si el nombre de la variable es $filename y escribo $filenaem , algunos idiomas lo detectarán, pero en PHP, es válido. Así que los avisos pueden ser útiles en esos casos.

Usar los avisos para marcar posibles errores al escribir el código la primera vez puede ser un proceso muy útil; un aumento repentino del nivel de advertencia en una base de código existente a menudo resulta en una tonelada de advertencias inútiles.

Si el código debe editarse para eliminar todas las advertencias y avisos es un análisis de costo-beneficio: ¿vale la pena el tiempo por los problemas que puede resolver? Tienes que responder a cada caso.

    
respondido por el benzado 31.08.2011 - 01:04
6

La limpieza de algunos avisos puede potencialmente frustrar un error. Las variables no definidas, por ejemplo, pueden generar errores si intenta leer la variable que no se inicializó. Siempre que sea posible, trato de escribir una advertencia y un código libre de aviso. Pero, si estoy usando el código de otra persona, generalmente no me tomo el tiempo para limpiar sus errores o avisos.

    
respondido por el Amy Anuszewski 31.08.2011 - 01:00
1

Mi enfoque general es habilitar avisos en la máquina de desarrollo y deshabilitarlos en servidores en vivo. Suponiendo que no sabe, php 5 tiene un nuevo nivel de error E_STRICT. En cuanto a la fijación de los mensajes de aviso: Depende de usted. No puede saber si un mensaje de aviso causará un error a menos que mire el código. Si se está tomando el tiempo para buscar el código, también puede corregirlo.

    
respondido por el Srisa 31.08.2011 - 11:52

Lea otras preguntas en las etiquetas

Comentarios Recientes

La mayoría de los sitios deben pasar por un escenario de caso separado, pero puede ocurrir un error. He experimentado un par de malentendidos potencialmente serios a este respecto. El primero es el uso de estadísticas de la versión de fecha. Parece que hay tan poco valor en cómo se pueden determinar esos datos que una empresa arriesga, simplemente ejecutando el código. La lección aquí es la siguiente. Mire el código fuente cuando haya leído mal una sección del código. <| Endoftext |> Dijeron que la bomba... Lee mas