我使用的是PHP7.0.2
在整数的手册中,我看到了以下语句:
整数可以用十进制(基10)、十六进制(基16)、八进制(基8)或二进制(基2)表示法指定,可以在前面加上符号(-或+)。
在手册的一个地方,我看到了以下自相矛盾的说法:
PHP不支持无符号整数。
因为这两句话,我弄糊涂了。在一个地方,它说一个整数可以有一个符号,这意味着每当我使用任何整数时,在它前面加上一个符号(-或+)将是我的选择。
同时,据说PHP不支持无符号整数。
那么,它是否说,每当我使用任何整数而没有在其前面加上符号(+或-)时,它在PHP中不被视为法定整数吗?
发布于 2021-11-07 20:36:00
为了澄清这一点,正如整数和float是不同的数据类型一样,无符号整数实际上是整数的不同数据类型。标准的整数通常是32位(在不同的编程语言之间可以有所不同),可以是大约20亿到+20亿,而无符号整数可以是0到大约40亿。你也可以有越来越小的整数,这些整数的最大值越来越低,也可以不带符号,保持相同数量的不同选项,但只有正数。
这与数据库键字段相关,在这些字段中,对于自动增量标识类型字段来说,无符号整数是理想的,但在php中不支持。它变得很复杂,所以如果您只是使用php,不要对它施加压力,如果您使用php与数据库提供程序一起使用,最好避免在您的数据中使用无符号整数,因为php将中断或开始返回与实际存储的正值不同的负值。
是那种烦躁使我的眼睛有点抽搐。
发布于 2017-12-29 17:55:54
这就意味着,每个整数都是有符号的,您不能创建无符号整数。因此,如果您想要使用比PHP_INT_MAX更大的东西,就必须使用字符串(或一些库,如bcmath)来解决这个问题。
发布于 2017-12-29 18:01:05
表示正整数的+前缀是可选的,正整数可以用无符号或+表示。负整数只能由-表示。
扩展示例从整数指南。
$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)https://stackoverflow.com/questions/48026426
复制相似问题