2010-10-18 41 views
0

当我将00设置为像这样的值时,该如何实现:将字符串数字转换为PHP中的数字

$ var = 00;

当我使用它时,它输出为0?如何设置00以便$ var ++变为01?

+0

带尾随零的数字用于指定八进制值(而不是基数为10的小数) - 我不认为这是你想要做的。您想做什么?通常,最好在输出变量时加零,但用正常整数加上等等。 – 2010-10-18 20:52:34

+0

你在这里问两个单独和不相关的问题。你应该把它们分成不同的问题。 – meagar 2010-10-18 20:55:25

回答

6

PHP中的数字(以及几乎所有的语言)都不是以领先的(或者在十进制值的情况下,尾随)内部存储的。

在PHP中,有很多方法可以用前导零显示数字变量。最简单的方法是将您的值转换为一个字符串,并用零填充字符串,直到它的长度正确。 PHP有一个叫做str_pad为你做这项功能:

$var = 0; 
$var += 1; 

// outputs '01' 
echo str_pad($var, 2, '0', STR_PAD_LEFT); 

另外,在sprintf家庭的功能有打印零填充的值的说明符:

$var = 1; 

// outputs '01' 
printf("%02d", $var); 
+0

请注意,对于00而言,并不重要,但对于01等,php会尝试将该数字保存为八进制数。 – 2010-10-18 20:58:01

3

使用功能类似printfsprintf将为你更容易地做到这一点。

$number = 1; 
printf("%02d", $number); // Outputs 01 

$number = 25; 
printf("%02d", $number); // Outputs 25 

您可以通过用另一个数字替换两个值来设置最小宽度。

+0

所以:'$ number = 25; printf(“%04d”,$ number); //输出0025?' – 2010-10-18 21:31:44

+0

@Lam这是正确的 – 2010-10-18 21:45:06