在PHP中,如何添加零填充数字字符串并保留零填充?

时间:2009-04-05 02:37:32

标签: php variables string-formatting zero-pad

如果我在PHP中有一个包含0001的变量并向其添加1,则结果为2而不是0002

如何解决这个问题?

4 个答案:

答案 0 :(得分:21)

$foo = sprintf('%04d', $foo + 1);

答案 1 :(得分:12)

当您对各种类型的变量进行操作时,它可能会帮助您理解PHP数据类型以及它们如何受到影响。你说你有“PHP中的变量说0001”,但那个变量是什么类型的?可能是一个字符串,“0001”,因为整数不能具有该值(它只是1)。所以当你这样做时:

echo ("0001" + 1);

... +运算符说,“嗯,这是一个字符串和一个整数。我不知道如何添加字符串和int。但我知道如何转换字符串INTO int,然后将两个int添加在一起,所以让我这样做,“然后它将”0001“转换为1.为什么?因为用于将字符串转换为整数的PHP规则表示字符串中的任意数量的前导零都将被丢弃。这意味着字符串“0001”变为1。

然后+说,“嘿,我知道如何添加1和1.它是2!”并且该陈述的输出是2。

答案 2 :(得分:9)

另一个选项是str_pad()功能。

$text = str_pad($text, 4, '0', STR_PAD_LEFT);

答案 3 :(得分:3)

<?php
#how many chars will be in the string
$fill = 6;
#the number
$number = 56;
#with str_pad function the zeros will be added
echo str_pad($number, $fill, '0', STR_PAD_LEFT);
// The result: 000056
?>