2010-10-18 71 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