使用php和整数值进行printf格式化


printf formatting with php and integer values

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

我认为PHP正在为您思考。

如果你用四个0字符右键填充5,你如何区分它和50000之间的区别?还是在用四个0字符右填充的5和用三个0字符右填充50之间?

我手头没有PHP可供测试,但如果您试图使用格式"%'0-4d"来说服它做您想做的事情,该怎么办?