В PHP, как мне добавить числовую строку с нулевым отступом и сохранить заполнение нулями?
Если у меня есть переменная в PHP, содержащая 0001
и я добавляю 1 к нему, результат 2 вместо 0002
,
Как мне решить эту проблему?
4 ответа
Вероятно, это поможет вам понять типы данных PHP и то, как они влияют, когда вы выполняете операции с переменными различных типов. Вы говорите, что у вас есть "переменная в PHP, скажем, 0001", но какого типа эта переменная? Вероятно, строка "0001", так как целое число не может иметь это значение (это просто 1). Итак, когда вы делаете это:
echo ("0001" + 1);
... +
оператор говорит: "Хм, это строка и целое число. Я не знаю, как добавить строку и целое число. Но я действительно знаю, как преобразовать строку в INT в целое, а затем добавить два целых числа вместе, поэтому позвольте мне сделать это ", а затем он преобразует" 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
?>