Foros del Web » Programando para Internet » PHP »

Usar @$var ? en vez de isset( $var ) } Buena práctica?

Estas en el tema de Usar @$var ? en vez de isset( $var ) } Buena práctica? en el foro de PHP en Foros del Web. Estoy programando un conjunto de clases para facilitar el manejo de base de datos usando configuraciones y salidas de pantalla entre otras cosas, y en ...
  #1 (permalink)  
Antiguo 09/08/2011, 07:36
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Usar @$var ? en vez de isset( $var ) } Buena práctica?

Estoy programando un conjunto de clases para facilitar el manejo de base de datos usando configuraciones y salidas de pantalla entre otras cosas, y en una parte de mi script en una condición if para saber si existían alguna de las variables especificadas, preferí usar:

Código PHP:
     if( @$var || @$var2 || @$var3 || ... || @$varN ) ;
     
#En vez de:
     
if( isset($var) || isset($var2) || isset($var3) || ... || isset($varN) ) ; 
Ambas formas no alertan errores de nivel E_WARNING al no estar definida la variable.

Es una buena práctica hacer esto pero no siempre, sólo en casos específicos? Yo lo hice porque eran muchas las variables las que tenía que verificar y eran elementos de arrays en realidad, entonces así podía mantener la condición del if en una sola línea y no en más líneas perjudicando la legilibilidad del código debido a la extensión que resultaba al user la función isset().

Qué piensan?
  #2 (permalink)  
Antiguo 09/08/2011, 09:29
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Usar @$var ? en vez de isset( $var ) } Buena práctica?

Obviamente no es una buena práctica. Lo que hace la (@) es "ignorar" el error... No muestra el mensaje de error pero tampoco te soluciona el problema por arte de magia. Además de consumir recursos innecesarios.

Isset lo que hace es comprobar si la variable está definida y no es NULL, creo que se acerca más a tus necesidades.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 09/08/2011, 09:33
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Usar @$var ? en vez de isset( $var ) } Buena práctica?

Hola que tal

Como dice andresdzphp el @ te ignora el error por lo cual no es recomendable para la programación, recuerda que también puedes utilizar empty pasa saber si una variable contiene valor

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 09/08/2011, 10:11
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Usar @$var ? en vez de isset( $var ) } Buena práctica?

Justamente como pensé, no es una buena práctica, estoy totalmente de acuerdo con ustedes. Dejaré que la condición se alargue para no hacer algo poco profesional. Muchas gracias!
  #5 (permalink)  
Antiguo 09/08/2011, 20:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Usar @$var ? en vez de isset( $var ) } Buena práctica?

Pésima practica.

Por cierto, isset() admite múltiples parámetros por si no quieres hacer muy largo y confuso el código:
Código PHP:
if (isset($foo$bar$candy)) // ... 
Y no olvides usar empty() también, pues te ahorra trabajo la mayoría del tiempo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 09/08/2011, 20:42
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Usar @$var ? en vez de isset( $var ) } Buena práctica?

Todo lo que tenga que ver con @ es malo

@mysql_query
@file_get_contents
@mail
Etc...

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: isset, var, vez, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:45.