printf()
물론입니다! 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`와 매칭됩니다. 이런 식으로 형식 지정자와 인수의 순서를 바꿀 수 있습니다.
이 기능은 특히 다국어 지원이나 템플릿에서 변수를 다르게 배치해야 할 때 유용합니다.
| 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 |
|
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 |
|
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 |