Validar si una cadena es un número en PHP
Con esta función podremos comprobar si una cadena es un número o no. Remarcar que en ningún momento comprobamos el tipo de la variable.
function is_number($str){
$str = str_replace(',', '.', $str);
if(!is_numeric($str)) return false;
$str = (int)$str;
if(!is_integer($str) AND !is_float($str)) return false;
return true;
}
var_dump(is_number(12)); //true
var_dump(is_number("12")); //true
var_dump(is_number(-12)); //true
var_dump(is_number("-12")); //true
var_dump(is_number(1.2)); //true
var_dump(is_number("1,2")); //true
var_dump(is_number("a")); //false
var_dump(is_number(0)); //true