В PHP, как я могу добавить нумерованную цифровую строку и сохранить нулевое дополнение?

Если у меня есть переменная в PHP, содержащая 0001 и я добавляю 1 к ней, результат равен 2 вместо 0002 .

Как решить эту проблему?

     $foo = sprintf('%04d', $foo + 1); 

    Вероятно, это поможет вам понять типы данных PHP и то, как они влияют на операции с переменными различных типов. Вы говорите, что у вас «переменная в PHP говорит 0001», но какой тип этой переменной? Вероятно, строка «0001», поскольку целое число не может иметь это значение (это всего лишь 1). Поэтому, когда вы это делаете:

     echo ("0001" + 1); 

    … оператор + говорит: «Hm, это строка и целое число. Я не знаю, как добавить строку и int. Но я знаю, как преобразовать строку INTO в int, а затем добавить два ints вместе, так позвольте мне сделать это », а затем он преобразует« 0001 »в 1. Почему? Поскольку правила PHP для преобразования строки в целое число говорят, что любое количество ведущих нулей в строке отбрасывается. Это означает, что строка «0001» становится равной 1.

    Тогда + говорит: «Эй, я знаю, как добавить 1 и 1. Это 2!» и вывод этого утверждения равен 2.

    Другим вариантом является функция str_pad () .

     $text = str_pad($text, 4, '0', STR_PAD_LEFT); 
     <?php #how many chars will be in the string $fill = 6; #the number $number = 56; #with str_pad function the zeros will be added echo str_pad($number, $fill, '0', STR_PAD_LEFT); // The result: 000056 ?>