-
[PHP] 형식화한 문자열 출력 또는 반환 (printf / sprintf 함수)프로그래밍/PHP 2019. 1. 14. 22:33
▶PHP 형식화한 문자열 출력 또는 반환 (printf / sprintf 함수)
▶설명
형식화한 문자열(formatted string)을 출력 또는 반환하는 방법을 알아보겠습니다.
- printf : 형식화한 문자열을 출력합니다.
- sprintf : 형식화한 문자열을 반환합니다.
두 함수의 사용법은 같습니다!!!
가장 기본적이고 단순한 사용법만 작성하도록 하겠습니다
자세한 내용은 아래의 링크를 참고하여 주시기 바랍니다.
▶사용법
강조 처리된 부분만 필수 입력 사항입니다.
printf(형식 문자열, [인수1, 인수2...])
sprintf(형식 문자열, [인수1, 인수2...])
사용법만으로는 설명이 부족하기 때문에 예제에서 설명하도록 하겠습니다.
▶예제
형 지정어 (문자열) : %s
코드
<?php $total_pizza = 10; $my_pizza = 3; $format = '피자 조각 %s개 중 나의 피자 조각은 %s개입니다.'; printf($format, $total_pizza, $my_pizza);
결과
피자 조각 10개 중 나의 피자 조각은 3개입니다.
문자열 안에 문자열 형 지정어(%s)로 설정했습니다.
총 2개의 %s 값이 존재하기 때문에 2개의 인수를 넘겼습니다.
형 지정어가 전달한 인수로 변경되어 출력되는 것을 확인할 수 있습니다.
만약 형 지정어를 2개로 했는데, 인수의 개수가 부족하면 에러를 반환합니다.
그렇지만 이렇게 사용하면 문자열 안에 들어가는 문자열 형 지정어와 인수의 순서를 맞춰 줘야하는 문제가 있습니다.
아래의 예제를 통해 그 문제를 해결하는 방법을 알아보도록 하겠습니다.
형 지정어 : 인수 번호 지정
코드
<?php $total_pizza = 10; $my_pizza = 3; $format = '피자 조각 %2$s개 중 나의 피자 조각은 %1$s개입니다. 나는 %1$s개를 가진다고!'; printf($format, $my_pizza, $total_pizza);
결과
피자 조각 10개 중 나의 피자 조각은 3개입니다. 나는 3개를 가진다고!
위와 같이 형 지정어를 작성하면 원하는 인수를 여러 번 사용할 수도 있고,
문자열 내에 형 지정어와 인수에 순서를 굳이 맞춰 줄 필요도 없습니다.
※ sprintf 함수는 printf 함수와 동일하게 사용하지만 문자열을 출력하는게 아닌 반환합니다.
▶마치며
오직 문자열에 대한 형 지정어만 언급했습니다.
정수와 이진수 등 다양한 형 지정어에 관해 알기 원하시면,
sprintf 문서를 확인하시기 바랍니다.
'프로그래밍 > PHP' 카테고리의 다른 글
[PHP] 문자열 큰 따옴표(")와 작은 따옴표(')의 차이 (0) 2019.01.14 [PHP] 세션 기본 (SESSION) (0) 2018.01.25 [PHP] 문자 인코딩 변환하기 (iconv 함수) (0) 2017.12.23 [PHP] 랜덤 숫자 생성 (rand 함수) (0) 2017.12.20 [PHP] 문자열 부분 가져오기 (substr, mb_substr) (0) 2017.12.18