将零填充数字字符串转换为整数

时间:2011-08-12 19:15:43

标签: php

我为带有前导零的条形码填充整数,因此它们具有相同数量的字符,例如:

1    -> 00000001 
12   -> 00000012
1044 -> 00001044

00000001是数字,当转换为整数时,它是1

这对所有整数有效吗?

3 个答案:

答案 0 :(得分:5)

小心,以0开头的数字在PHP中被视为基数8

>> var_dump(011);
int(9)

然而显式的将字符串转换为int似乎是安全的

>> var_dump((int)'011');
int(11)

你没有说出你要存储这些数字的任何内容,但是如果它是一个数据库,这里有一些关于数据类型的建议:

条形码编号不是(尽管名称)数字。传真号码,社会安全号码等同样如此。您不应将这些存储为数字数据(例如使用MySQL的INT或DECIMAL)数据类型。而是使用文本数据类型(如CHAR或VARCHAR)

答案 1 :(得分:0)

  

这对所有整体都有效吗?

这取决于你的期望。左键填充零将永远不会更改值。无论数字是多少,你都可以在字符串的左边添加任意数量的零,它将始终为数字,并且它将始终转换为相同的整数。

(int)"01" == 1
(int)"0001" == 1
(int)"000000001" == 1

答案 2 :(得分:0)

除非您将其视为字符串,否则PHP会将00000001解释为整数1.如果您想将条形码视为字符串,请注意正确转换它们,因为PHP可能会将它们解释为整数{{3} }。