如果我在含有0001 PHP可变和我对它加1,结果是2,而不是0002

我该如何解决这个问题?

有帮助吗?

解决方案

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

其他提示

这可能会帮助你了解PHP数据类型以及它们如何影响当你操作不同类型的变量。你说你有“在PHP中一个变量说0001”,但什么类型的变量?可能是一个字符串,“0001”,因为整数不能有值(这只是1)。所以,当你做到这一点:

echo ("0001" + 1);

...的+经营者说,“嗯,这是一个字符串和一个整数。我不知道如何添加一个字符串和一个int。但我知道如何将字符串转换为一个int,然后添加两个整数在一起,所以让我做“,然后将其转换为‘0001’为1。为什么呢?因为对于一个字符串转换为整数的PHP规则说,任何数量的字符串中的前导零的被丢弃。这意味着字符串 “0001” 变为1。

然后+说,“嘿,我知道如何添加1和1这2!”和该声明输出是2。

另一种选择是 str_pad()函数

$text = str_pad($text, 4, '0', STR_PAD_LEFT);
<?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
?>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top