语句“PHP不支持无符号整数”实际上意味着什么?

时间:2017-12-29 17:50:27

标签: php types integer unsigned-integer signed-integer

我正在使用 PHP 7.0.2

在整数the manual的某个地方,我看到了以下声明:

  

整数可以用十进制(基数10),十六进制(基数16)指定,   八进制(基数8)或二进制(基数2)表示法,可选地以a开头   标志( - 或+)。

在手册的一个地方我看到了矛盾的陈述:

  

PHP不支持无符号整数。

由于这两句话我感到困惑。在一个地方,它表示一个整数可以选择前面有一个符号,这意味着每当我使用任何整数时,在它前面加上一个符号( - 或+)将是我的选择。

与此同时,它说PHP不支持无符号整数。

那么,它是否说每当我使用任何整数而没有在其前面加上符号(+或 - )时,它是不是被认为是PHP中的合法整数?

2 个答案:

答案 0 :(得分:0)

这只是意味着每个整数都是有符号的,你不能创建无符号整数。因此,如果你想使用大于PHP_INT_MAX的东西,你必须使用字符串(或像bcmath这样的库)来解决这个问题。

答案 1 :(得分:0)

表示正整数的+前缀是可选的,正整数可以用无符号或+表示。负整数只能用 - 。

表示

扩展示例from the integer guide

$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)