Foros del Web » Programando para Internet » PHP »

problema con variable cuando es cero

Estas en el tema de problema con variable cuando es cero en el foro de PHP en Foros del Web. una duda: porque una variable que es igual a cero: $var= 0; pasa por true si hago if($var==""){ pasa por aca } para php 0 ...
  #1 (permalink)  
Antiguo 09/07/2006, 17:51
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
problema con variable cuando es cero

una duda:
porque una variable que es igual a cero:
$var= 0;

pasa por true si hago

if($var==""){
pasa por aca
}

para php 0 = "" ?
  #2 (permalink)  
Antiguo 09/07/2006, 18:41
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
No, lo que pasa es que php tiene conversion de tipos automatica.

Cuando creas la variable $var = 0, var es una variable numerica, pero cuando haces la comparacion "" == $var, php no puede comparar una cadena con un numero, por lo que convierte la variable var a una cadena, y al convertirla, le asigna el valor de cadena vacia, osea "". Por lo que al hacer la comparacion entre las 2 cadenas da un true.

Saludos
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #3 (permalink)  
Antiguo 09/07/2006, 19:12
Geo
 
Fecha de Ingreso: marzo-2003
Ubicación: México
Mensajes: 44
Antigüedad: 21 años, 1 mes
Puntos: 2
Eso, 0 (un número) no es lo mismo que una cadena vacía.

Saludos,
JJ (Geo).
__________________
La imaginación es el límite
Visita mi página o la versión anterior.
  #4 (permalink)  
Antiguo 10/07/2006, 07:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usa:

empty()
www.php.net/empty

Dicha función valida que tu variable sea de valor distinto a 0, '' (cadena vacia) o nula o no esté definida ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 10/07/2006, 08:31
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 20 años
Puntos: 2
Gracias por la respuesta, pero..

<?
$var=0;
if(empty($var)){
--->> pasa por true;}
?>
De hecho esta bien que así sea, porque la funcion empty valida que tenga un valor no vacio y distinto de cero, pero yo necesito que tome a cero como un valor.

tengo mas o menos una funcion así:

function modificar($parametros){
if($parametros=="") //si uso empty para el caso pasa por true igual.
{ echo "parametro vacio";exit;}
}

$parametro=0;
modificar($parametro)


imprime: parametro vacio.

La solución rápida que le encontré es hacer
if($parametro==0){$parametro="0";}

modificar($parametro)

asi funciona, aunque no es muy vistoso.

saludos
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 17:30.