2010-10-06 84 views
2

我想以3位格式增加一个值。PHP - 增加一个值

例如:

$start_value = 000; 
while() { 
do something; 
$start_value++; 
} 

这样,我有这样的结果:

$start_value = 000; 
$start_value = 1; 
$start_value = 2; 
$start_value = 3; 

,而不是'001', '002', '003'

我怎样才能做到这一点的结果?

回答

3

您在这里犯了一个大错误。代码中的000是八进制数。任何在许多编程语言中以0开头的文字数字都被认为是八进制文字。如果你想存储000,你需要一个字符串,而不是数字。

$start_value = "000"; 
while() { 
    do something; 
    $start_value = str_pad((int) $start_value++, 3 ,"0",STR_PAD_LEFT); 
} 
9

使用sprintf你可以做到这一点:

echo sprintf("%03d", $start_value++) . "<br>"; 

希望这是你所追求的。

与您的代码实现它:

$start_value = 000; 
while() { 
    do something; 
    $start_value = sprintf("%03d", $start_value++); 
} 
0

它是这样的。在PHP中,没有数据类型的概念,所有东西都是在运行时根据使用地点和使用方式确定的。

<?php 
$start_value = 000; 
while ($start_value < 10) { 
//your logic goes here 
    $start_value++; 
printf("[%03s]\n",$start_value); 
} 
?> 

输出:[001] [002] [003] [004] [005] [006] [007] [008] [009] [010]

所以,你可以做所有的计算。如果你想打印这个值,你可以使用带格式说明符的printf。希望能帮助到你。