PHP에서는 제로 패딩 숫자 문자열에 어떻게 추가하고 제로 패딩을 보존합니까?
-
23-08-2019 - |
문제
PHP 포함에 변수가있는 경우 0001
그리고 나는 그것에 1을 더하고, 결과는 대신 2입니다. 0002
.
이 문제를 어떻게 해결합니까?
해결책
$foo = sprintf('%04d', $foo + 1);
다른 팁
PHP 데이터 유형을 이해하는 데 도움이 될 것입니다. PHP 데이터 유형과 다양한 유형의 변수에 대한 작업을 수행 할 때 어떻게 영향을 받는지 이해하는 데 도움이 될 것입니다. "PHP에 변수 0001"이 있다고 말하지만 그 변수는 어떤 유형입니까? 정수가 그 값을 가질 수 없기 때문에 아마도 "0001"이 될 것입니다 (단지 1). 그래서 당신이 이것을 할 때 :
echo ("0001" + 1);
...그만큼 +
오퍼레이터는 "hm, 그것은 문자열과 정수입니다. 문자열과 int를 추가하는 방법을 모르겠지만 문자열을 int로 변환하는 방법을 알고 있습니다. 그런 다음 두 개의 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
?>
제휴하지 않습니다 StackOverflow