我想将整数值存储在数据库中,并为此在 $_POST 值上使用 (int) 类型转换。但它评估另一个值而不是提交的整数。
echo (int)0444444;
输出
149796
请帮忙。
我想将整数值存储在数据库中,并为此在 $_POST 值上使用 (int) 类型转换。但它评估另一个值而不是提交的整数。
echo (int)0444444;
输出
149796
请帮忙。
给一个整数加上前缀0
意味着它应该被解释为一个八进制值,即以 8 为底而不是以 10 为底。
0444444 (OCT) = 149796 (DEC)
如果要将字符串转换为整数,而不是强制转换,您可以使用intval()
which 可选地允许您指定基数 10。
虽然您的示例中的强制转换是从 int 到 int 的强制转换(0444444 已经被解释为整数),所以您的强制转换是无操作的。
根据其他答案,0
前缀导致 PHP 将值解释为八进制。
该intval
功能可能是您正在寻找的。
带前导0
的值被视为八进制值。