$i=0000;
while($i<=1231)
{
print "$i";
$i++;
}
我希望它显示0001
,
0002
,
0003
,
0004
,
但它打印:
0
,
1
,
2
有谁知道为什么这不起作用?
提前谢谢。
答案 0 :(得分:10)
尝试使用printf("%04s",$i);
答案 1 :(得分:4)
print str_pad($i,4,'0',STR_PAD_LEFT);
只是一种方式......你也可以使用sprintf
。
答案 2 :(得分:3)
在考虑增量时,PHP将字符串0000
视为数字0。 ++
增量运算符实际上也可以处理普通字符串,但由于PHP的类型处理,它在这种情况下无法正常工作。但是,如果您已使用a0000
之类的字符串开始,那么递增它将导致a0001
。例如:
<?php
$var = 'a0000';
for ($i = 0; $i < 100; $i++)
{
$var++;
}
echo $var; // Outputs a0100
?>
虽然,由于这种使用递增运算符的方法有点不正统,我建议在这种情况下使用printf("%04d", $var)
(或sprtinf()
)来输出。例如:
<?php
$var = 0;
for ($i = 0; $i < 100; $i++)
{
printf('%04d ', $var);
$var++;
}
?>
答案 3 :(得分:1)
sprintf(),str_pad()
答案 4 :(得分:1)
试试这个$x = str_pad($z + 1, 5, 0, STR_PAD_LEFT);