这是我的代码:
<?php
$variable1 = 00001;
$variable2 = (sprintf('%04d', $variable1 + 1));
echo $variable2;
?>
为什么这段代码的结果是“0002”而不是“00002”?换句话说,它缺少一个 0。
%04d中的4设置打印值的总宽度
第一个参数中的数字是“字符总数”,而不是填充中使用的零的数量。 您正在寻找的是%05d。
一个更有趣的问题是为什么下面打印'0009'而不是'0011'?
<?php
$var = 0010;
$str = sprintf('%04d', $var+1);
echo $str;
?>
那么你为什么要使用八进制表示呢?我只是好奇。