типы — Что на самом деле означает выражение «PHP не поддерживает целые числа без знака»?

я использую PHP 7.0.2

В одном месте в руководство на целых числах я увидел следующее утверждение:

Целые числа могут быть указаны в десятичном формате (основание 10), шестнадцатеричном (основание 16),
восьмеричное (основание 8) или двоичное (основание 2) обозначение, необязательно предшествующее
знак (- или +).

и в одном месте в руководстве я увидел ниже противоречивое утверждение:

PHP не поддерживает целые числа без знака.

Из-за этих двух предложений я запутался. В одном месте говорится, что целому числу может предшествовать знак, который означает, что всякий раз, когда я использую какое-либо целое число, ему будет предшествовать знак (- или +) или нет.

И в то же время говорится, что PHP не поддерживает целые числа без знака.

Итак, говорит ли это, что всякий раз, когда я использую любое целое число без предшествующего ему знака (+ или -), не будет ли оно рассматриваться как допустимое целое число в PHP?

0

Решение

Это просто означает, что каждое целое число подписано, и вы не можете создавать целые числа без знака. Так что если вы хотите использовать что-то большее, чем PHP_INT_MAX, вы должны использовать строки (или некоторые библиотеки, такие как bcmath), чтобы обойти это.

0

Другие решения

Префикс + для указания положительного целого числа является необязательным, положительные целые могут быть указаны без знака или +. Отрицательные целые числа могут быть указаны только через -.

Расширяя примеры из целочисленного гида.

$a = 123; // decimal number (123)
$a = +123; // decimal number (123)
$a = -123; // a negative decimal number (-123)
$a = 0123; // octal number (equivalent to 83 decimal)
$a = +0123; // octal number (equivalent to 83 decimal)
$a = -0123; // octal number (equivalent to -83 decimal)
$a = 0x1A; // hexadecimal number (equivalent to 26 decimal)
$a = +0x1A; // hexadecimal number (equivalent to 26 decimal)
$a = -0x1A; // hexadecimal number (equivalent to -26 decimal)
$a = 0b11111111; // binary number (equivalent to 255 decimal)
$a = +0b11111111; // binary number (equivalent to 255 decimal)
$a = -0b11111111; // binary number (equivalent to -255 decimal)
0

По вопросам рекламы [email protected]