Если вы хотите сгенерировать число и манипулировать им как собственным типом, вы не сможете это сделать с большинством установок PHP (у вас есть 32- или 64-битные int
s и ничего больше), как уже было сказано в других ответах.Однако, если вы просто генерируете число и хотите обойти его, можно просто объединить строки:
$var = rand(0,PHP_INT_MAX).str_pad(rand(0, 999999999), 9, 0, STR_PAD_LEFT);
echo $var;
На платформе, в которой PHP использует 32-битное целое число, это позволяет вам получитьпочти случайное целое число (в виде строки), которое больше 32 бит (> 10 десятичных знаков).Конечно, в этой конструкции есть систематическая ошибка, которая означает, что вы не сможете охватить все числа с одинаковой вероятностью.Ограничения вызовов rand()
подчиняются нормальным десятичным правилам, поэтому легко настроить верхнюю границу желаемого числа.
Если все, что вы делаете, это сохранение / передача / отображение этого значения, строка будет в порядке.Равенство и больше / меньше, чем тесты также будут работать.Только не делай с этим никакой математики.