2

我试图使用 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
4

1 回答 1

0

我认为 PHP 正在尝试为您考虑。

5如果你用四个字符右填充0,你怎么能分辨出和之间的区别50000?或者在5右边填充四个0字符和50右边填充三个0字符之间?

我没有方便测试的 PHP,但是如果您尝试使用该格式"%'0-4d"来说服它执行您想要的操作怎么办?

于 2012-08-03T00:04:51.070 回答