2009-04-05 7 views

답변

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

감사합니다. – Ryan

8

또 다른 옵션은 str_pad()입니다.

$text = str_pad($text, 4, '0', STR_PAD_LEFT); 
12

PHP 데이터 유형과 다양한 유형의 변수에 대한 조작을 수행 할 때 PHP 데이터 유형이 어떻게 영향을 받는지 이해하는 데 도움이 될 것입니다. 당신은 "PHP에서 변수는 0001"이라고 말하면서 어떤 변수가 그 변수입니까? integer는 그 값을 가질 수 없기 때문에 아마도 "0001"이라는 문자열입니다 (단지 1). 이 수행 할 때 : 그럼.

echo ("0001" + 1); 

... + 운영자는 말한다, "흠, 그건 문자열과 정수 나 문자열과 int를 추가하는 방법을 모르겠어하지만 내가 어떻게 알아. 문자열 INTO를 int로 변환 한 다음 두 개의 int를 함께 추가하면 그렇게 할 수 있습니다. "그러면"0001 "이 1로 변환됩니다. 왜? 문자열을 정수로 변환하는 PHP 규칙은 문자열의 선행 0을 몇 개라도 버립니다. 즉, 문자열 "0001"이 1이됩니다.

+ 다음과 같이 말합니다. "이봐, 나는 1과 1을 더하는 방법을 안다." 그 진술의 출력은 2입니다.

+0

문제는 해결하지 못했지만 잘 설명했습니다. :) – DanMan

2
<?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 
?>