Я работаю над проектом на PHP и пытаюсь использовать один из параметров в $_POST
, к сожалению, я хочу отправить результат в веб-службу, которая принимает только параметр как целое. Поэтому я должен указать тип с (int)
но эта работа изменит значение параметра, например, что-то вроде этого:
$o = 4924869620; $c = (int) $o;
то c будет иметь значение 629902324
Почему это происходит? как я могу сохранить значение одинаково? Я также использовал intval()
и он также изменит значение
Диапазон целых чисел начинается с -2.147.483.648 и заканчивается на 2.147.483.647 – ваш номер больше максимального диапазона. Вместо этого используйте другой тип данных, например float.
Float имеет диапазон, который начинается с 1.5E-45 и переходит на 3.4E38; o)
Я предполагаю, что вы работаете на 32-битной системе, а это значит, что максимальный int будет 4294967295, когда он вводит его как float instad:
$c = (float) $o;
Ваше число больше, чем разрешено для int. Попробуйте использовать его как float или double.
Вы должны попытаться отправить его как float. Если это невозможно, вы можете отправить массив целых чисел? (если это так, вы можете разделить свой номер на 4-байтовые фрагменты и сможете создать массив, сохраняющий эти значения, а с другой стороны вы сможете построить номер обратно на основе этого массива)
Как и выше (float) $o;
поскольку 4924869620 не является целым числом. Если вы отправляли на сервер, но тип данных не был бы релевантным, а только то, что это были числовые данные, только если бы это была строка с кодировкой url, которая была отправлена в любом случае …