2010-04-18 53 views
4
$i=0000; 
while($i<=1231) 
{ 
    print "$i"; 
    $i++; 
} 

我希望它顯示0001000200030004, 而是它打印: 012如何將0000加1並保持格式化?

有誰知道這是爲什麼不工作?
預先感謝您。

回答

1

的sprintf(),str_pad()

10

嘗試使用printf("%04s",$i);

4
print str_pad($i,4,'0',STR_PAD_LEFT); 

只有一個辦法......你也可以使用sprintf

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++; 
} 
?> 
1

試試這個$x = str_pad($z + 1, 5, 0, STR_PAD_LEFT);

相關問題