PHP에서는 제로 패딩 숫자 문자열에 어떻게 추가하고 제로 패딩을 보존합니까?

StackOverflow https://stackoverflow.com/questions/718229

문제

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
?>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top