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