개념과 사용 방법
PHP에서는 문자열 안의 문자 중 기존 의미에서 '벗어나(escape)' 특별한 의미나 기능으로 해석되는 문자를 이스케이프 특수문자(Escaped characters)라고 합니다.
핵심 특징
PHP의 이스케이프 특수문자(Escaped characters)는 백슬래시(\) 문자로 시작한다는 공통점이 있습니다.
기본적인 이스케이프 특수문자들
다음의 표는 PHP에서 기본적으로 알아야 할 이스케이프 특수문자들입니다.
| 이스케이프 특수문자 | 홑따옴표(') 표기법 문자열에서 |
쌍따옴표(") 표기법 문자열에서 |
의미 또는 기능 |
|---|---|---|---|
\\ |
지원 | 지원 | 백슬래시(\)로 해석 |
\' |
지원 | 특별한 의미나 기능 없음
(문자 그대로 표현) |
홑따옴표(')로 해석 |
\" |
특별한 의미나 기능 없음
(문자 그대로 표현) |
지원 | 쌍따옴표(")로 해석 |
\n |
특별한 의미나 기능 없음
(문자 그대로 표현) |
지원 | 줄바꿈(new line)으로 해석 |
\t |
특별한 의미나 기능 없음
(문자 그대로 표현) |
지원 | 탭(horizontal tab, 키보드의 Tab 키를 누른 것 같은 간격 표현) |
\$ |
특별한 의미나 기능 없음
(문자 그대로 표현) |
지원 | 달러($) 기호 표현 |
예제
위 표에서 살펴본 것처럼 동일한 이스케이프 특수문자가 홑따옴표(') 표기법과 쌍따옴표(") 표기법의 문자열에서 각각 어떻게 다르게 해석되는지 예제로 살펴보겠습니다.
\\
백슬래시 문자로 시작하는 백슬래시(\\)는 다음과 같이 해석됩니다.
/* 홑따옴표(') 표기법 문자열에서 */
$single_quoted = '백슬래시(\\)는 이렇게 해석됩니다.';
echo $single_quoted; // 출력: 백슬래시(\)는 이렇게 해석됩니다.
/* 쌍따옴표(") 표기법 문자열에서 */
$double_quoted = "백슬래시(\\)는 이렇게 해석됩니다.";
echo $double_quoted; // 출력: 백슬래시(\)는 이렇게 해석됩니다.
\'
백슬래시 문자로 시작하는 홑따옴표(\')는 다음과 같이 해석됩니다.
/* 홑따옴표(') 표기법 문자열에서 */
$single_quoted = '홑따옴표(\')는 이렇게 해석됩니다.';
echo $single_quoted; // 출력: 홑따옴표(')는 이렇게 해석됩니다.
/* 쌍따옴표(") 표기법 문자열에서 */
$double_quoted = "홑따옴표(\')는 그대로 표시됩니다.";
echo $double_quoted; // 출력: 홑따옴표(\')는 그대로 표시됩니다.
\"
백슬래시 문자로 시작하는 쌍따옴표(\")는 다음과 같이 해석됩니다.
/* 홑따옴표(') 표기법 문자열에서 */
$single_quoted = '쌍따옴표(\")는 그대로 표시됩니다.';
echo $single_quoted; // 출력: 쌍따옴표(\")는 그대로 표시됩니다.
/* 쌍따옴표(") 표기법 문자열에서 */
$double_quoted = "쌍따옴표(\")는 이렇게 해석됩니다.";
echo $double_quoted; // 출력: 쌍따옴표(")는 이렇게 해석됩니다.
\n
백슬래시 문자로 시작하는 줄바꿈(new line) 이스케이프 특수문자(\n)는 다음과 같이 해석됩니다.
/* 홑따옴표(') 표기법 문자열에서 */
$single_quoted = '줄바꿈 이스케이프 특수문자(\n)는 그대로 표시됩니다.';
echo $single_quoted; // 출력: 줄바꿈 이스케이프 특수문자(\n)는 그대로 표시됩니다.
/* 쌍따옴표(") 표기법 문자열에서 */
$double_quoted = "줄바꿈 이스케이프 특수문자(\n)는 이렇게 해석됩니다.";
echo $double_quoted;
/* 출력:
줄바꿈 이스케이프 특수문자(
)는 이렇게 해석됩니다.
*/
헷갈리지 마세요!
여기서 말하는 줄바꿈 문자(\n)는 HTML에서 줄바꿈을 표현하는 <br> 태그와는 다릅니다.
따라서 쌍따옴표(") 표기법 문자열에서 \n을 사용해도 브라우저 화면에서는 줄바꿈으로 렌더링되지 않습니다. 위 출력 화면은 CLI(Command Line Interface) 환경이나 PHP를 사용해 파일 등에 문자열을 저장하는 경우와 같이 줄바꿈 문자가 그대로 표시되는 환경에서 확인한 결과입니다.
\t
백슬래시 문자로 시작하는 탭(horizontal tab, 키보드의 Tab 키를 누른 것 같은 간격 표현) 이스케이프 특수문자(\t)는 다음과 같이 해석됩니다.
/* 홑따옴표(') 표기법 문자열에서 */
$single_quoted = '탭 이스케이프 특수문자(\t)는 그대로 표시됩니다.';
echo $single_quoted; // 출력: 줄바꿈 이스케이프 특수문자(\t)는 그대로 표시됩니다.
/* 쌍따옴표(") 표기법 문자열에서 */
$double_quoted = "탭 이스케이프 특수문자(\t)는 이렇게 해석됩니다.";
echo $double_quoted; // 출력: 줄바꿈 이스케이프 특수문자( )는 그대로 표시됩니다.
\$
백슬래시 문자로 시작하는 달러($) 기호 이스케이프 특수문자(\$)는 다음과 같이 해석됩니다.
/* 홑따옴표(') 표기법 문자열에서 */
$single_quoted = '달러 기호 이스케이프 특수문자(\$)는 그대로 표시됩니다.';
echo $single_quoted; // 출력: 달러 기호 이스케이프 특수문자(\$)는 그대로 표시됩니다.
/* 쌍따옴표(") 표기법 문자열에서 */
$double_quoted = "달러 기호 이스케이프 특수문자(\$)는 이렇게 해석됩니다.";
echo $double_quoted; // 출력: 달러 기호 이스케이프 특수문자($)는 이렇게 해석됩니다.
참고: 추가적인 이스케이프 특수문자
기본적인 이스케이프 특수문자들 이외에도 PHP에서는 문자열 안에서 특별한 의미나 기능으로 해석되는 추가적인 이스케이프 특수문자들이 있습니다.
| 이스케이프 특수문자 | 홑따옴표(') 표기법 문자열에서 |
쌍따옴표(") 표기법 문자열에서 |
의미 또는 기능 |
|---|---|---|---|
\r |
특별한 의미나 기능 없음
(문자 그대로 표현) |
지원 | 캐리지 리턴(Carriage Return)으로 해석 |
\v |
특별한 의미나 기능 없음
(문자 그대로 표현) |
지원 | 수직 탭(Vertical Tab)으로 해석 |
\e |
특별한 의미나 기능 없음
(문자 그대로 표현) |
지원 | Escape 제어 문자로 해석 |
\f |
특별한 의미나 기능 없음
(문자 그대로 표현) |
지원 | 폼 피드(Form Feed)로 해석 |
PHP에 사용되는 이스케이프 특수문자는 php.net의 Escape sequences와 php.net의 Strings 주제에서 Double quoted#Escaped characters에서 관련 내용을 확인할 수 있습니다.