Deger İnteger Değilse işlev gerçekleşmez
$deger ="sadasd";
if (!is_numeric($deger)) {
echo "sadece sayı";    
}else{
    echo "işleme devam";
}
buda sadece rakam daha sağlıklı

boş bırakılamaz null deger gelemez sadece ve sadece rakamdır

gettype("12364"); burada ne kadar rakam olursa olsun string deger döner çünki "" içerisindedir ama alltaki kod ise ne olursa olsun sadece rakam ister

 //Post Edilen Değer
   <?
$Username = "15";

function kontrol ($str){
Preg_Match("/(\w+)/",TRIM($str),$isim);
Echo (!is_numeric($isim[0]) == TRUE) || (EMPTY($str)) 
? "sadece rakam girebilirsiniz" 
: "Kullanıcı Adınız : ".$str;
                    }
//Örnek Kullanım
kontrol($Username);  
?>
buradada sadece harf olmasını sağlamıştım
https://www.r10.net/1061176647-post13.html

umarım işine yarar