Вот мой код:
<?php $variable1 = 00001; $variable2 = (sprintf('%04d', $variable1 + 1)); echo $variable2; ?>
Почему результатом этого кода является «0002», а не «00002»? другими словами, отсутствует 0.
4 в% 04d устанавливает общую ширину печатного значения
число в первом параметре - это «общее количество символов», а не количество нулей, которое нужно использовать в заполнении. Вместо этого вы ищете% 05d.
Более интересный вопрос: почему следующий текст выводит «0009» вместо «0011»?
<?php $var = 0010; $str = sprintf('%04d', $var+1); echo $str; ?>
Так почему же вы используете восьмеричное представление? Мне просто любопытно.