Foros del Web » Programando para Internet » PHP »

Necesito el "porque" xD

Estas en el tema de Necesito el "porque" xD en el foro de PHP en Foros del Web. Facil y sencillo, por que este dichoso if devuelve true? if("asdf" == 0) return true; else return false;...
  #1 (permalink)  
Antiguo 10/03/2010, 13:09
Avatar de Chupytoloco  
Fecha de Ingreso: julio-2007
Mensajes: 88
Antigüedad: 16 años, 9 meses
Puntos: 1
Necesito el "porque" xD

Facil y sencillo, por que este dichoso if devuelve true?

if("asdf" == 0)
return true;
else
return false;
__________________
Creador de blackmoons.net
----------------------------------------------------------------------
  #2 (permalink)  
Antiguo 10/03/2010, 13:14
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Necesito el "porque" xD

mm buena pregunta.. quiza por que 0 es algo como false.. entonces le dices
si asdf es igual a 0 es falso.. y eso es verdadero ya que es falso
es algo confuso aunque en realidad no estoy 100% seguro.. estare mirando el tema para saber tambien! :P

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 10/03/2010, 13:18
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Necesito el "porque" xD

si no me quivoco, porque al tratar de comparar letras con numeros los debe de convertir a un mismo tipo de dato, creo que asdf al pasar a tipo de dato numérico es convertido en 0.

esa es la ide que tengo, espero no estar mal

saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #4 (permalink)  
Antiguo 10/03/2010, 13:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Necesito el "porque" xD

La mejor forma para que detecte lo que estas comparando es usando el simbolo de igual tres veces ===. De esa forma detecta tipo de valor y el valor. Lo que esta haciendo tu código es comparar algo similar a 0 == 0. Mira el manual de PHP tiene un ejemplo similar a lo que estas haciendo e indica que un string puede ser considerado como un 0. http://php.net/manual/en/language.op...comparison.php
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 10/03/2010, 13:20
Avatar de Chupytoloco  
Fecha de Ingreso: julio-2007
Mensajes: 88
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Necesito el "porque" xD

no es que lo necesite para nada, pero llegue a una entrevista de trabajo y me preguntan eso.... 5 años programando en php para meter la pata de la manera mas tonta xD.
__________________
Creador de blackmoons.net
----------------------------------------------------------------------
  #6 (permalink)  
Antiguo 10/03/2010, 13:23
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Necesito el "porque" xD

te repito es por los tipos de datos
si haces esto
Código PHP:
Ver original
  1. if("asdf" == "0")
  2. return true;
  3. else
  4. return false;
te devuelve falso, por ser del mismo tipo los compara como tales.

y ahora toy seguro, no esta mal lo que se
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 10/03/2010, 13:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Necesito el "porque" xD

<offtopic>¿No pudiste conseguir el trabajo por esa pregunta?</offtopic>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 10/03/2010, 13:36
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Necesito el "porque" xD

Cita:
Iniciado por Chupytoloco Ver Mensaje
Facil y sencillo, por que este dichoso if devuelve true?

if("asdf" == 0)
return true;
else
return false;
Pues lo q devuelve es false, no true.
  #9 (permalink)  
Antiguo 10/03/2010, 13:37
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Necesito el "porque" xD

Cita:
Iniciado por abimaelrc Ver Mensaje
<offtopic>¿No pudiste conseguir el trabajo por esa pregunta?</offtopic>

Hombre si esto es afirmativo, lo siento por tí de veras pero no puedo evitar
No te preocupes, ellos se lo pierden
  #10 (permalink)  
Antiguo 10/03/2010, 13:39
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Necesito el "porque" xD

Cita:
Iniciado por eulloa Ver Mensaje
Pues lo q devuelve es false, no true.
devuelve true.. el manual lo dice

Código PHP:
Ver original
  1. echo ("asdf" == 0) ? "true" : "false";
__________________
More about me...
~ @rhyudek1
~ Github
  #11 (permalink)  
Antiguo 10/03/2010, 13:48
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Necesito el "porque" xD

quiero profundizar un poco más Hidek1 pasame el link
  #12 (permalink)  
Antiguo 10/03/2010, 13:56
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Necesito el "porque" xD

ya te lo dio @abimaelrc arriba

http://php.net/manual/en/language.op...comparison.php
__________________
More about me...
~ @rhyudek1
~ Github
  #13 (permalink)  
Antiguo 10/03/2010, 13:59
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Necesito el "porque" xD

Me estaba fajando con el código jejejejejejeje. Pasa q copié el ejemplo que había puesto eits sin mirarlo bien y me estaba dando evidentemente FALSE. Me sacó de paso jejejejeje
  #14 (permalink)  
Antiguo 10/03/2010, 14:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Necesito el "porque" xD

oye, esta bien que sea una "conchita de mango" (así le llaman aquí) pero para que no te aceptaran por ello :S, francamente, yo al menos pasaría esa leve falla ¿que pretenden que uno se conozca el lenguaje de cabo a rabo?!!, ni que hubieses echo php tu solo!, todavía aún aprendo cosas de php que no sabia, y no digamos de javascript y los demás lenguajes
  #15 (permalink)  
Antiguo 10/03/2010, 14:32
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: Necesito el "porque" xD

Pues encontré esta info que concuerda con lo que dijo eits y me dejo más conforme
http://www.otton.org/2008/08/06/stup...se-comparison/
__________________
I am Doyle please insert code.
  #16 (permalink)  
Antiguo 10/03/2010, 15:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Necesito el "porque" xD

Es simple:
Código PHP:
Ver original
  1. var_dump((int)"asdf"); => int(0)

0 == 0 => true.

Saludos.
  #17 (permalink)  
Antiguo 10/03/2010, 15:12
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Necesito el "porque" xD

Cierto, es lo que dice el manual, gracias GatorV

Etiquetas: Ninguno
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 06:27.