2
我試圖使用printf進行格式化,但是我意識到當我使用%d
時,我無法使用0
作爲填充說明符與-
對齊。這是我想要做的事情:使用php和整數值的printf格式化
$a = sprintf("%04d",5);
$b = sprintf("%'1-4d",5);
$c = sprintf("%0-4d",5);
$d = sprintf("%0-4s",5);
var_dump($a);//outputs 0005
var_dump($b);//outputs 5111
var_dump($c);//outputs 5(and 4 spaces) why not 5000?
var_dump($d);//outputs 5000
我也喜歡這個,但爲什麼它允許5111?我也嘗試%'0-4d,它也輸出5. – draconis 2012-08-03 00:08:54
我猜想它允許'5111',因爲它只是將'1'視爲填充字符,但'0'具有某種語義含義。我認爲這可能是時候[提交一份針對php的bug報告](https://bugs.php.net/)。 – 2012-08-03 00:22:13