Foros del Web » Programando para Internet » PHP »

Fallo usando is_int

Estas en el tema de Fallo usando is_int en el foro de PHP en Foros del Web. Hola estoy haciendo un programa que te muestra por pantalla la tabla hasta el diez de un numero que tu le ingreses. Funciona correctamente pero ...
  #1 (permalink)  
Antiguo 19/05/2008, 05:13
 
Fecha de Ingreso: julio-2005
Ubicación: En el país del a ignorancia
Mensajes: 72
Antigüedad: 18 años, 8 meses
Puntos: 0
Fallo usando is_int

Hola estoy haciendo un programa que te muestra por pantalla la tabla hasta el diez de un numero que tu le ingreses. Funciona correctamente pero cuando intento meter la variable is_int para que revise si el numero es entero o no salta la opción False escriba lo que escriba y quería saber que estoy haciendo mal.

El problema es que escriba lo que escriba salta al else y muestra el echo.

Código PHP:
<html>
<head>
       <title>Title here!</title>
</head>
<body>
<?php
$numero
=$_REQUEST['multiplo'];

if (
is_int($numero)) {

          for (
$i=1$i<=10$i++)
                 {
                  echo 
$i." x ".$numero." = ".$i*$numero."<br>";
                 }
     }
else
{

 echo 
$numero.' no es entero';

}

?>
</body>
</html>
  #2 (permalink)  
Antiguo 19/05/2008, 05:21
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: Fallo usando is_int

¿Has leido el manual de is_int (www.php.net/is_int)? Ahi te da la explicacion, lo de una "cadena numerica".
  #3 (permalink)  
Antiguo 19/05/2008, 05:25
 
Fecha de Ingreso: julio-2005
Ubicación: En el país del a ignorancia
Mensajes: 72
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Fallo usando is_int

si pero no entiendo esto,

var_dump(is_int(23));
var_dump(is_int("23"));
var_dump(is_int(23.5));
var_dump(is_int(true))


------------------Solucionado-------------------

He conseguido solucionarlo usando is_numeric que es mucho más cómoda que la otra pero me gustaria saber por que la otra no funcionaba, os dejo el codigo que funciona.


Código PHP:
<html>
<head>
       <title>Title here!</title>
</head>
<body>
<?php
$numero
=$_REQUEST['multiplo'];

if (
is_numeric($numero))



                 for (
$i=1$i<=10$i++)

                   {

                      echo 
$i." x ".$numero." = ".$i*$numero."<br>";

                   }

                    
else
                   
echo(
"Has ingresado un dato no válido");

?>
</body>
</html>

Última edición por Malaria; 19/05/2008 a las 07:12
  #4 (permalink)  
Antiguo 19/05/2008, 09:15
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fallo usando is_int

is_int no funciona porque los valores pasados por REQUEST son cadenas, siempre. Contengan lo que contengan.

Y por lo tanto la variable que le pasabas al principio no era de tipo entero, aunque contenía lo que te señaló DarkJ en el primer mensaje: una "cadena numérica".

Leé el manual con detenimiento, para ambas funciones (is_int e is_numeric).


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 06:55.