PHP int类型转换生成错误的值

TPS*_*tar 2 php type-conversion

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

echo (int)0444444;
Run Code Online (Sandbox Code Playgroud)

输出

149796
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Joa*_*son 7

前缀一个整数0意味着它应该被解释为八进制值,即base 8而不是base 10.

0444444 (OCT) = 149796 (DEC)
Run Code Online (Sandbox Code Playgroud)

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

您的示例中的强制转换是从int到int的强制转换(0444444已被解释为整数),因此您的强制转换是无操作.