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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语句“PHP不支持无符号整数”实际上意味着什么?相关的知识,希望对你有一定的参考价值。

我使用的是php 7.0.2

the manual关于整数的一个地方,我看到了以下声明:

整数可以用十进制(基数10),十六进制(基数16),八进制(基数8)或二进制(基数2)表示,可选地以符号( - 或+)开头。

在手册的一个地方,我在下面看到了矛盾的说法:

PHP不支持无符号整数。

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

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

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

答案

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

另一答案

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

扩展示例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)

以上是关于语句“PHP不支持无符号整数”实际上意味着什么?的主要内容,如果未能解决你的问题,请参考以下文章

以多种方式在 SQL 查询中多次使用复杂语句

带你轻松解密白盒测试(Demo详解)

FPGA学习笔记03-VHDL语法基础-信号代入语句

sql语句代编写sql 游标 事务代写

代写数据库表设计代写SQL语句代做数据库项目代做MySQL数据库

Sqlite代写SQL执行语句代写