2

我想将整数值存储在数据库中,并为此在 $_POST 值上使用 (int) 类型转换。但它评估另一个值而不是提交的整数。

echo (int)0444444;

输出

149796

请帮忙。

4

3 回答 3

7

给一个整数加上前缀0意味着它应该被解释为一个八进制值,即以 8 为底而不是以 10 为底。

0444444 (OCT) = 149796 (DEC)

如果要将字符串转换为整数,而不是强制转换,您可以使用intval()which 可选地允许您指定基数 10。

虽然您的示例中的强制转换是从 int 到 int 的强制转换(0444444 已经被解释为整数),所以您的强制转换是无操作的。

于 2013-01-01T14:10:23.933 回答
3

根据其他答案,0前缀导致 PHP 将值解释为八进制。

intval功能可能是您正在寻找的。

于 2013-01-01T14:12:13.120 回答
2

带前导0的值被视为八进制值。

于 2013-01-01T14:09:35.727 回答