Depende del valor que pases en $id, la función is numeric funciona con 1, parece más bien un problema de parámetros. Prueba esto:
Código PHP:
Ver original<?php
$vars[] = 1;
$vars[] = "hola";
$vars[] = true;
$vars[] = null;
foreach ($vars as $key => $value) {
if(is_numeric($value)) echo "$value Es numérico!<br>"; if(is_numeric((int
)$value)) echo "(int)$value Es numérico!<br>"; }
?>
Salu2