Foros del Web » Programando para Internet » PHP »

diferencia entre empty y if. que usar ?

Estas en el tema de diferencia entre empty y if. que usar ? en el foro de PHP en Foros del Web. hola, buenas, una pregunta, yo programo en php y casi siempre para hacer verificaciones de variables, uso "empty" o (!empty) nunca me dio error reporting ...
  #1 (permalink)  
Antiguo 19/02/2016, 06:51
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
diferencia entre empty y if. que usar ?

hola, buenas, una pregunta, yo programo en php y casi siempre para hacer verificaciones de variables, uso "empty" o (!empty)

nunca me dio error reporting ni nada de eso, a lo mejor, alguna vez, me toco hacer un en una variable asi...

if($variable). el tema es que quisiera saber, osea pienso que if funciona casi igual, pero que da error de "NOTICE" en variables no definidas...

pues tenia un codigo y me dijeron que saque los empty, por que esta funcion. evaluando otra funcion da error. osea tengo que mandar if. y no se, por ahi salta un error... teng oque
comprobar todo de vuelta...

http://docs.php.net/manual/en/types.comparisons.php

me dieron esto y no me cierra, bien, tengo que verificar todo el codigo
  #2 (permalink)  
Antiguo 19/02/2016, 09:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: diferencia entre empty y if. que usar ?

A ver, un NOTICE es un error, un mejor dicho la evidencia de que cometes una mala practica.

Lo correcto es siempre verificar la existencia de una variable antes de usarla ¿no te parece lógico?

Y bueno, un if() no es capaz de ello, por eso hay construcciones tipo isset() y empty().

El asunto es que isset() y empty() trabajan únicamente con variables y no con expresiones, que justamente es lo que dices de "evaluando otra función da error".

Se te limitas a comprobar variables es correcto usar isset() o empty(), si intentas comparar expresiones ya no.

Por cierto, las versiones más recientes de PHP ya eliminaron esta limitación y permiten evaluar expresiones y no sólo variables.

Consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/02/2016, 14:11
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: diferencia entre empty y if. que usar ?

isset() verifica si una variable existe.
empty() verifica si una variable existe, y si contiene algo o no.

if() evalúa una variable o expresión, pero para valuarla debe existir.

ejemplos isset:
isset($variable)//falso por que no existe

$variable='';
isset($variable)//Verdadero, por que la variable existe aunque esté vacía


ejemplos empty:

empty($variable)//verdadero, la variable no existe

$variable='';
empty($variable)//verdadero, la variable existe pero está vacía

$variable=0;
empty($variable)//verdadero, la variable existe pero a efectos matemáticos está vacía

$variable=1;
empty($variable)//Falso, la variable existe y contiene algo


ejemplos if:

if($variable)//Error: la variable no existe

$variable=0;
if($variable)//Falso: la variable contiene un valor equivalente a false

$variable=1;
if($variable)//Verdadero: la variable contiene un valor equivalente a true
  #4 (permalink)  
Antiguo 22/02/2016, 06:49
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: diferencia entre empty y if. que usar ?

que raro a mi nunca me dio error , eso de usar empty en una funcion. debe ser la version de mi PHP .,

pero claro no es correcto, usar empty sobre una funcion... usare IF en esos casos... dale de una :
  #5 (permalink)  
Antiguo 22/02/2016, 08:04
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: diferencia entre empty y if. que usar ?

Cita:
Iniciado por vani18 Ver Mensaje
pero claro no es correcto, usar empty sobre una funcion... usare IF en esos casos... dale de una :
Efectivamente, según el manual:

isset() sólo trabaja con variables, ya que pasar cualquier otra cosa dará como resultado un error de intérprete. Para comprobar si se han definidoconstantes use la función defined().


También según el manual encontramos

Las funciones variables no funcionarán con constructores de lenguaje como echo, print, unset(), isset(), empty(), include, require y similares. Utilice funciones de envoltura para hacer uso de cualquiera de estos constructores como funciones variables.

Etiquetas: diferencia, empty, usar, variable
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 09:50.