我试图使用printf进行格式化,但我意识到当我使用%d
时,我不能将0
用于-
对齐的填充说明符。这是我正在尝试做的事情:
$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
答案 0 :(得分:0)
我认为PHP正试图在这里为你考虑。
如果你用5
个字符填充0
,你怎么能区分它和50000
?或者在5
右边填充四个0
字符和50
右边填充三个0
字符之间?
我没有PHP方便测试,但如果您尝试使用格式"%'0-4d"
来说服它做你想做的事情会怎么样?