$i=0000;
while($i<=1231)
{
print "$i";
$i++;
}
我希望它显示0001
, 0002
, 0003
, 0004
, 而是它打印: 0
, 1
, 2
如何将0000加1并保持格式化?
有谁知道这是为什么不工作?
预先感谢您。
$i=0000;
while($i<=1231)
{
print "$i";
$i++;
}
我希望它显示0001
, 0002
, 0003
, 0004
, 而是它打印: 0
, 1
, 2
如何将0000加1并保持格式化?
有谁知道这是为什么不工作?
预先感谢您。
的sprintf(),str_pad()
尝试使用printf("%04s",$i);
print str_pad($i,4,'0',STR_PAD_LEFT);
只有一个办法......你也可以使用sprintf
。
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++;
}
?>
试试这个$x = str_pad($z + 1, 5, 0, STR_PAD_LEFT);