ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 문서를 확인하시기 바랍니다.


    댓글

Designed by Tistory.