PHPバージョン
4.0.4+
var_dump(ctype_digit('1234'));  // bool(true)
var_dump(ctype_digit('0123'));  // bool(true)

var_dump(ctype_digit(' 123 ')); // bool(false)
var_dump(ctype_digit('3.14'));  // bool(false)
var_dump(ctype_digit('-123'));  // bool(false)
var_dump(ctype_digit(''));      // bool(false)

/* PHP 8.1.0 からは、文字列ではない引数を渡すことはサポートされなくなりました。 */
var_dump(ctype_digit(123)); // bool(false)
var_dump(ctype_digit(1e3)); // bool(false)
ctype_digit(mixed $text): bool
/* int型、ASCII範囲(-128から255までの整数)内の整数 */
$x = 65; // -128から255までの整数である65は、文字「A」のASCII値とみなされます
var_dump(ctype_digit($x)); // bool(false) => 文字列「A」とみなされます

/* int型、ASCII範囲(-128から255までの整数)外の整数 */
$y = 1234; // -128から255以外の整数である1234は、文字列に変換された「1234」とみなされます
var_dump(ctype_digit($y)); // bool(true) => 文字列「1234」とみなされます
$x = 65;

var_dump(ctype_digit($x)); // false (意図しない結果)
var_dump(ctype_digit((string)$x)); // true
$var = ' 123 ';

var_dump(ctype_digit($var));       // false
var_dump(ctype_digit(trim($var))); // true
$user_input = trim($_POST['age']);

if (ctype_digit($user_input)) {
    // 入力が数字のみで構成されていれば処理します。
    $age = intval($user_input); // 数値に変換して使用できます
    echo "年齢は{$age}歳です。";
} else {
    echo "年齢は数字で入力してください。";
}