estraño problema

Rodrigo Fuentealba darkprox en gmail.com
Mar Feb 28 13:34:59 CLST 2006


Análisis de tu drama:

> $resultado=0;
>   
valor numérico.
> if ($resultado=="ok")
si el texto mencionado ahí es igual a el valor de mi variable $resultadi 
de tipo ###!!!>>>"OBJETO"<<<!!!###
> {
>     echo "lalala ";
> }
> else
> {
>     echo "lololo ";
> }
> ?>
>   
Este es uno de los problemas que más hay que tener en cuenta en PHP, 
debido a que todas las variables se comportan de manera distinta según 
se les utilice como cadenas de texto o numéricas, por que PHP maneja 
todas las variables como objetos y las convierte al tipo de dato que 
necesite (alguna vez leí por ahí, no recuerdo el link). Cuando programas 
con esto, evita mezclar variables de tipos distintos y cuando 
inevitablemente tengas que hacerlo, utiliza floatval() para coma 
flotante, intval() para valores enteros, strval() para valores de cadena 
de texto y así otras cosas.

No me mires No me mires No me No me No me mires déjalo ya...
Mira ahora, Mira ahora, Mira Mira Mirame ya... (Mecano en la radio... 
odio esa canción pero es pegajosísima.)

<?php
   $resultado=0;

   if (strval($resultado)=="ok")
   {
      echo intval($resultado);
      echo " lalala ";
   }
   else
   {
      echo intval($resultado);
      echo " lololo ";
   }
?>

lo unico que haremos será ver si la variable $resultado convertida a 
string es igual al string "ok". Hasta hace un tiempo me resistía a 
programar en PHP por lo mismo, pero en la empresa me dijeron "no... 
hazlo en PHP" y donde manda capitán...
> extrañamente siempre muestra LALALA en vez de lololo,
> alguien me puede explicar por que crestas "cero es igual a OK"!!!!
>
>
> saludos
> Boris Cruchet
> GULiV.cl


Más información sobre la lista de distribución PHP