我为带有前导零的条形码填充整数,因此它们具有相同数量的字符,例如:
1 -> 00000001 12 -> 00000012 1044 -> 00001044
00000001
是数字,当转换为整数时,它是1
。
这对所有整数有效吗?
答案 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} }。