$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);