본문 바로가기

Programming Language/PHP

[PHP] 문자열을 형식화해서 출력하기 - printf(), 타입지정자

 

 

 

● 형식화해서 문자열을 표시하는 printf()

: 변수 값은 echo(), print(), print_r()을 사용해서 문자열을 포함시켜서 표시할수 있지만, 이 세가지 명령은 값을 있는 그대로만 출력합니다.

반면에, printf()는 값을 형식을 갖춘 문자열로 지정하여 출력할 수 있습니다.

printf()의 f가 format이므로 형식 문자열을 포맷 문자열이라고도 합니다.

사용 형식)

printf('형식 문자열', 값 1, 값 2, ~~~ , 값 3)

 

 

 

 

위 예제에서는 echo 와 printf를 비교해보았습니다.

echo는 있는 그대로 상수값 M_PI값을 그대로 출력하는 반면에 printf는 '%3f'로 지정하므로 3.142처럼 소수점 아래 세쨰자리까지 출력합니다.

즉, 반올림해서 값을 포맷하여 출력합니다.

 

 

 

▶ 치환하는 값이 한 개 일때

원주율 출력에서는 값만 출력했지만, 안에 값을 지환해서 넣어주었습니다.

( %위치에 값이 치환됩니다.)

 

 

 

 

▶ 치환하는 값이 여러 개 일때

위처럼 치환하는 값이 여러개 일때는 값1,값2로 차례로 치환되어 출력됩니다.

( %위치에 값이 치환됩니다.)

 

 

 


 

 

 

형식지정자

: 지환할 값의 형에 따라 표시 형식이 다르므로 형식 지정자의 마지막에 타입 지정자를 붙입니다.

 

 

 

 

▶ 부호 지정자

값이 수치일 때 초깃값에는 -5나 8처럼 음수 일때만 -부호가 붙습니다.

하지만, 부호 지정자로 +를 지정하면 -5나 +8처럼 양수에도 +가 붙습니다.

 

 

 

 

 

▶ 채움(패딩) 지정자

위 예제는 $a에 7을 넣어주고, $b에 2380을 넣어줍니다.

%03d 지정자는 수치가 세자릿수가 되도록 앞을 0으로 채웁니다.

두번째는 %'*6d 지정자는 수치가 여섯 자릿수가 되도록 앞을 *로채웁니다.

 

 

 

 

 

연월일이 0000-00-00형식으로 되도록 포맷해주고 값을 넣어줍니다.

 

 

 

 

▶ 정렬 지정자

위 예제에서 +는 오른쪽으로 정렬이고, -는 왼쪽으로 정렬이 됩니다.

s는 값이 문자열임을 나타내는 형식 지정자입니다. 23ab문구에서 -8이기에 8자리 왼쪽정렬이 되고 나머지 값은 #으로 나타냅니다.

*도 위와 동일하지만 +이기에 오른쪽 정렬이 됩니다.

 

 

 

▶ 너비 지정자

$a 값은 너비 4문자에서 두자리만 사용하기에 앞에 00으로 두개가 채워집니다.

$b 값은 5문자이므로 그대로 표시됩니다.

$c 값은 5문자이므로 그대로 표시됩니다.

 

 

 

 

 

▶ 정밀도 지정자

$a 는 값을 소수점 이하 둘째 자리까지 반올림합니다.

$b 는 값의 자릿수가 부족하므로 0을 채워 둘째 자리 정밀도로 표시합니다.

$c 는 문자열이므로 앞 부분부터 5문자만 잘라냅니다.

 


 

 

 

※ 타입지정자