0

我有一个输入供用户输入电话号码,我int();在将其插入数据库之前使用它。

我将一些电话号码 0398765899->398765899 插入数据库

PHPint();自动删除第一个0,看起来不错,但我尝试时

   $var=0177;
    echo $new=(int)$var;

在 PHP 文件中,结果变为127

4

5 回答 5

4

电话号码是一个字符串;不是数字。想想1-800-FOO-BANG

另外,请注意它们的格式并不总是相同的。例子:

  • (123) 456 7890 或 123-456-7890 -- 美国
  • (+33) 1 23 45 67 89 -- 法国
于 2013-06-10T12:25:59.117 回答
1

使用 php 过滤器:

filter_var($var, FILTER_SANITIZE_NUMBER_INT);
于 2013-06-10T12:24:56.997 回答
0

当您将值转换为整数时,它将始终删除第一个零,因为根据有效数字,零首先没有意义。您必须将数字保留为字符串。

于 2013-06-10T12:30:41.100 回答
0

这不起作用:

$var=0177;
echo $new=(int)$var;

因为 PHP 认为这是一个八进制数。这有效:

$var='0177';
echo $new=(int)$var;
于 2013-06-10T12:27:09.540 回答
0

这是因为格式0ddd中的数字被 PHP 视为八进制数。这就是为什么你在转换为int.

正如@Denis 建议的那样,存储电话号码int并不是一个好主意。

于 2013-06-10T12:27:34.743 回答