1

这是我的代码:

<?php
$variable1 = 00001;
$variable2 = (sprintf('%04d', $variable1 + 1));
echo $variable2;
?>

为什么这段代码的结果是“0002”而不是“00002”?换句话说,它缺少一个 0。

4

3 回答 3

7

%04d 中的 4 设置打印值的总宽度

于 2009-04-06T16:13:58.167 回答
4

第一个参数中的数字是“字符总数”而不是填充中使用的零数。您正在寻找的是 %05d 。

于 2009-04-06T16:14:57.353 回答
1

一个更有趣的问题是为什么下面打印的是 '0009' 而不是 '0011'?

<?php
$var = 0010;
$str = sprintf('%04d', $var+1);
echo $str;
?>

那么你为什么要使用八进制表示呢?我只是好奇。

于 2009-04-06T16:33:21.350 回答