我有一个输入供用户输入电话号码,我在将其插入数据库之前使用int();
。
我在DB
中插入了一些电话号码0398765899-> 398765899 PHP int();
自动删除前0,看起来不错,但是当我尝试
$var=0177;
echo $new=(int)$var;
在PHP文件中,结果变为127
答案 0 :(得分:4)
电话号码是一个字符串;不是数字。想想1-800-FOO-BANG
。
另外,请注意他们并不总是以相同的方式格式化。例子:
答案 1 :(得分:1)
使用php过滤器:
filter_var($var, FILTER_SANITIZE_NUMBER_INT);
答案 2 :(得分:0)
这不起作用:
$var=0177;
echo $new=(int)$var;
因为PHP认为这是一个八进制数。这有效:
$var='0177';
echo $new=(int)$var;
答案 3 :(得分:0)
这是因为格式为0ddd
的数字被PHP视为八进制数。这就是为什么在转换为int
后你得到127。
同样@Denis建议将电话号码存储为int
不是一个好主意。
答案 4 :(得分:0)
当您将值转换为整数时,它将始终删除第一个零,因为根据有效数字,零在第一个位置没有意义。你必须将数字保留为字符串。