Skip to content

PHP

printf()

Author
siwon
Date
2023-08-17 18:08
Views
1072

물론입니다! PHP에서 `printf` 함수는 형식 지정자를 기반으로 문자열을 포맷하고 출력하는 데 사용됩니다. 다음은 `printf` 함수가 어떻게 작동하는지를 보여주는 몇 가지 예제입니다:


```php

// 기본적인 printf 사용법

$name = "John";

$age = 30;

printf("제 이름은 %s이고 나이는 %d살입니다.", $name, $age);

// 출력: 제 이름은 John이고 나이는 30살입니다.


echo "<br>";


// 소수점 자리수 지정

$price = 19.99;

printf("가격은 %.2f달러입니다.", $price);

// 출력: 가격은 19.99달러입니다.


echo "<br>";


// 숫자를 0으로 패딩하여 출력

$number = 7;

printf("0으로 패딩된 숫자는 %04d입니다.", $number);

// 출력: 0으로 패딩된 숫자는 0007입니다.


echo "<br>";


// 인수 스왑 활용

$var1 = "사과";

$var2 = "바나나";

printf("제가 %2\$s와 %1\$s를 가지고 있습니다.", $var1, $var2);

// 출력: 제가 바나나와 사과를 가지고 있습니다.

```


위 예제에서 형식 문자열 내의 형식 지정자(`%s`, `%d`, `%.2f`, `%04d`, `%2\$s`, `%1\$s` 등)는 변수 값이 삽입될 위치를 나타냅니다. 변수는 형식 문자열에 나타난 순서대로 `printf` 함수에 인수로 제공됩니다. 마지막 예제에서와 같이 인수 스왑을 사용하여 인수의 순서를 바꿀 수도 있습니다.


`printf` 함수는 다양한 데이터 유형 및 형식 옵션에 대한 형식 지정자를 사용하여 출력 문자열의 형식을 제어할 수 있습니다. 이 함수는 PHP에서 잘 포맷된 출력을 생성하는 강력한 도구입니다.




`printf` 함수에서 사용되는 주요 형식 지정자를 설명하겠습니다. 형식 지정자는 출력 문자열 내에서 어떤 유형의 값을 어떤 형식으로 출력할 것인지를 지정하는데 사용됩니다.


다음은 `printf` 함수에서 주로 사용되는 형식 지정자의 목록입니다:


- `%s`: 문자열을 출력합니다.

- `%d`: 정수를 10진수로 출력합니다.

- `%f`: 부동 소수점 숫자를 출력합니다.

- `%.nf`: 소수점 이하 n자리까지 출력합니다.

- `%c`: ASCII 코드에 해당하는 문자를 출력합니다.

- `%x` 또는 `%X`: 정수를 16진수로 출력합니다 (소문자 또는 대문자).

- `%o`: 정수를 8진수로 출력합니다.

- `%b`: 정수를 2진수로 출력합니다.

- `%e` 또는 `%E`: 부동 소수점 숫자를 지수 표기법으로 출력합니다.

- `%u`: 부호 없는 정수를 출력합니다.

- `%%`: 퍼센트 기호를 출력합니다.


예시:


```php

$name = "Alice";

$age = 30;

$price = 19.99;

$number = 7;


printf("이름: %s, 나이: %d, 가격: %.2f, 숫자: %04d", $name, $age, $price, $number);

// 출력: 이름: Alice, 나이: 30, 가격: 19.99, 숫자: 0007

```


이 외에도 형식 지정자는 더 다양한 옵션을 제공합니다. 예를 들어, 숫자를 패딩하거나 정렬하는 등의 작업을 수행할 수 있습니다. `printf` 함수의 형식 지정자는 원하는 출력 형식을 생성하기 위해 유용하게 사용할 수 있습니다.




`%2\$s`와 `%1\$s`와 같은 형식 지정자는 `printf` 함수에서 사용되는 인수 스왑(Argument Swapping)을 나타내는 것입니다. 이를 이해하기 위해서는 `printf` 함수의 인수의 순서를 바꿀 때 유용한 개념입니다.


일반적으로 `printf` 함수의 형식 지정자와 해당하는 인수는 순차적으로 매칭됩니다. 즉, 첫 번째 형식 지정자에 첫 번째 인수가 매칭되고, 두 번째 형식 지정자에 두 번째 인수가 매칭되는 식입니다. 그러나 때로는 형식 지정자의 순서와 인수의 순서를 다르게 매칭해야 할 때가 있습니다. 이럴 때 인수 스왑을 사용합니다.


예시로 `%2\$s`와 `%1\$s`를 설명하겠습니다:


```php

$var1 = "사과";

$var2 = "바나나";

printf("저는 %2\$s와 %1\$s를 좋아합니다.", $var1, $var2);

// 출력: 저는 바나나와 사과를 좋아합니다.

```


여기서 `%2\$s`는 두 번째 인수인 `$var2`와 매칭되고, `%1\$s`는 첫 번째 인수인 `$var1`와 매칭됩니다. 이런 식으로 형식 지정자와 인수의 순서를 바꿀 수 있습니다.

이 기능은 특히 다국어 지원이나 템플릿에서 변수를 다르게 배치해야 할 때 유용합니다.

Total 0

Total 45
Number Title Author Date Votes Views
15
http request form method GET POST
siwon | 2023.08.17 | Votes 0 | Views 1415
siwon 2023.08.17 0 1415
14
printf()
siwon | 2023.08.17 | Votes 0 | Views 1072
siwon 2023.08.17 0 1072
13
heredoc 또는 nowdoc 구문
siwon | 2023.08.17 | Votes 0 | Views 1069
siwon 2023.08.17 0 1069
12
single vs double quotes
siwon | 2023.08.17 | Votes 0 | Views 904
siwon 2023.08.17 0 904
11
string functions
siwon | 2023.08.17 | Votes 0 | Views 1050
siwon 2023.08.17 0 1050
10
return types
siwon | 2023.08.17 | Votes 0 | Views 1226
siwon 2023.08.17 0 1226
9
date(), time() funtions
siwon | 2023.08.17 | Votes 0 | Views 1188
siwon 2023.08.17 0 1188
8
Superglobals
siwon | 2023.08.17 | Votes 0 | Views 815
siwon 2023.08.17 0 815
7
scalar types
siwon | 2023.08.17 | Votes 0 | Views 917
siwon 2023.08.17 0 917
6
constructor
siwon | 2023.08.16 | Votes 0 | Views 990
siwon 2023.08.16 0 990
5
composition vs inheritance
siwon | 2023.08.16 | Votes -1 | Views 1193
siwon 2023.08.16 -1 1193
4
polymorphism = method overriding => abstract(추상화)와 관련있음
siwon | 2023.08.16 | Votes 0 | Views 1155
siwon 2023.08.16 0 1155
자식 class가 부모와 같은 method를 가질경우 자식 class의 메소드가 우선한다는 원칙
siwon | 2023.08.29 | Votes 0 | Views 1210
siwon 2023.08.29 0 1210
3
encapsulation
siwon | 2023.08.16 | Votes -1 | Views 919
siwon 2023.08.16 -1 919
private, protected등 access modifier를 사용하여 property나 method의 접근을 제한 하는 oop 원칙
siwon | 2023.08.30 | Votes 0 | Views 1072
siwon 2023.08.30 0 1072
2
inheritance
siwon | 2023.08.16 | Votes 0 | Views 854
siwon 2023.08.16 0 854
1
object와 class의 차이점
siwon | 2023.08.16 | Votes 0 | Views 1145
siwon 2023.08.16 0 1145