проблема результата спринта - PullRequest
1 голос
/ 06 апреля 2009

Вот мой код:

<?php
$variable1 = 00001;
$variable2 = (sprintf('%04d', $variable1 + 1));
echo $variable2;
?>

Почему результатом этого кода является «0002», а не «00002»? другими словами, отсутствует 0.

Ответы [ 3 ]

7 голосов
/ 06 апреля 2009

4 в% 04d устанавливает общую ширину печатного значения

4 голосов
/ 06 апреля 2009

число в первом параметре - это «общее количество символов», а не количество нулей, которое нужно использовать в заполнении. Вместо этого вы ищете% 05d.

1 голос
/ 06 апреля 2009

Более интересный вопрос: почему следующий текст выводит «0009» вместо «0011»?

<?php
$var = 0010;
$str = sprintf('%04d', $var+1);
echo $str;
?>

Так почему же вы используете восьмеричное представление? Мне просто любопытно.

...