Hola! estoy haciendo las validaciones correspondientes a un formulario y utilizo la función is_numeric() para validar si la entrada de datos en un txt fue númerica (un campo como DNI o cédula de identidad), para mi sorpresa después de varias combinaciones, me encontre con esto:
<?php
$DNI = $_REQUEST['txtDNI'];
//datos capturados en la variable $DNI ==> "222e2222"
if (!is_numeric($DNI))
{
echo "NO es númerico";
}
else
{
echo "Es númerico";
}
?>
Eso me devuelve "Es númerico" cuando debería decirme que NO lo es, tengo entendido que PHP se encarga de asignar los tipos de datos y acá la variable debería ser reconocida como una cadena o me equivoco?
Aqui te dejo la explicación, sacada de php.net
Citar
is_numeric():
Encuentra si la variable dada es numérica. Las cadenas numéricas consisten de un signo opcional, cualquier número de dígitos, una parte decimal opcional y una parte exponencial opcional. Por lo tanto, +0123.45e6 es un valor numérico válido. La notación hexadecimal (0xFF) es permitida también pero solo sin partes de signo, valor decimal y valor exponencial.
Saludos!