function generate_n_digit_number(int $n): int {
if ($n < 1) {
throw new InvalidArgumentException("Error: n must be a positive integer (>= 1).");
}
// For n=1, range is 0–9; for n>1, ensure no leading zeros
$lower_bound = ($n > 1) ? (int)pow(10, $n - 1) : 0;
$upper_bound = (int)pow(10, $n) - 1;
// Use random_int for secure, uniform distribution
return random_int($lower_bound, $upper_bound);
}
echo generate_n_digit_number(1) . PHP_EOL;
echo generate_n_digit_number(4) . PHP_EOL;
echo generate_n_digit_number(10) . PHP_EOL;
/*
run:
3
8758
9913686272
*/