PHP 문자열(String)이란?
PHP에서 문자열(string)은 숫자가 아닌 문자들이 연속된 나열을 의미합니다. ASCII 문자 집합에 속한 모든 문자는 문자열의 일부가 될 수 있습니다. 참고로 PHP 언어 자체는 유니코드(UNICODE)를 기본적으로 지원하지 않지만, mbstring과 같은 확장 모듈을 활용하면 UTF-8 등 멀티바이트 문자도 충분히 다룰 수 있습니다.
PHP에서 문자열 리터럴은 다음 네 가지 방식으로 표현할 수 있습니다.
- 작은따옴표(single quotes)
- 큰따옴표(double quotes)
- Heredoc 문법
- Nowdoc 문법
기본 문법
// 변수에 문자열 값 할당 $var = 'Hello World'; // 작은따옴표 $var = "Hello World"; // 큰따옴표
작은따옴표 문자열
작은따옴표로 묶인 문자열 안에 작은따옴표 문자 자체를 포함하려면 앞에 역슬래시(\)를 붙여야 합니다. 마찬가지로 역슬래시를 문자열에 포함하려면 역슬래시를 두 번 연속해서 작성해야 합니다. 작은따옴표 문자열에서는 \n과 같은 이스케이프 시퀀스가 특별한 의미로 해석되지 않고 입력한 그대로 출력됩니다.
큰따옴표 문자열과 이스케이프 시퀀스
큰따옴표로 묶인 문자열은 아래 표와 같은 이스케이프 시퀀스를 특수한 의미로 해석합니다.
| 시퀀스 | 의미 |
|---|---|
| \n | 줄바꿈(linefeed) |
| \r | 캐리지 리턴(carriage return) |
| \t | 수평 탭(horizontal tab) |
| \v | 수직 탭(vertical tab) – PHP 5.2.5부터 지원 |
| \e | 이스케이프(escape) – PHP 5.4.4부터 지원 |
| \f | 폼 피드(form feed) – PHP 5.2.5부터 지원 |
| \\ | 역슬래시(backslash) |
| \$ | 달러 기호(dollar sign) |
| \" | 큰따옴표(double quote) |
Heredoc 문법
Heredoc 문자열은 <<< 기호 뒤에 사용자가 임의로 정한 식별자(identifier)를 붙여 시작합니다. 다음 줄부터 여러 줄에 걸쳐 문자열을 작성할 수 있으며, 위에서 설명한 이스케이프 시퀀스도 함께 사용할 수 있습니다. 마지막 줄에는 동일한 식별자를 세미콜론(;)과 함께 적어 닫아 주면 됩니다.
// Heredoc으로 문자열 값 할당 public $var = <<< XYZ Hello World Welcome to Tutorialspoint XYZ;
Nowdoc 문법
Nowdoc은 Heredoc과 매우 비슷하지만 두 가지 차이점이 있습니다. 첫째, 식별자를 반드시 작은따옴표로 감싸야 합니다. 둘째, Nowdoc 문자열 내부의 이스케이프 시퀀스는 해석되지 않고 입력한 그대로 출력됩니다.
// Nowdoc으로 문자열 값 할당 public $var = <<< 'XYZ' Hello World Welcome to Tutorialspoint XYZ;
예제 1: 작은따옴표 문자열
다음 예제는 작은따옴표 문자열입니다. 이스케이프 시퀀스 \n이 해석되지 않고 그대로 출력되는 것을 확인할 수 있습니다.
<?php $var = 'Hello World.\n Welcome to Tutorialspoint'; echo $var; ?>
출력 결과:
Hello World.\n Welcome to Tutorialspoint
예제 2: 큰따옴표 문자열
큰따옴표 문자열에서는 \n이 실제 줄바꿈으로 해석되어 텍스트가 두 줄로 출력됩니다.
<?php $var = "Hello World.\n Welcome to Tutorialspoint"; echo $var; ?>
출력 결과:
Hello World. Welcome to Tutorialspoint
예제 3: Heredoc과 Nowdoc 사용하기
이 예제는 문자열 표현에 Heredoc과 Nowdoc 문법을 사용하는 방법을 보여줍니다.
<?php // Heredoc $var = <<< STR Hello World Welcome to Tutorialspoint STR; echo $var . "\n"; // Nowdoc $var = <<< 'STR' Hello World Welcome to Tutorialspoint STR; echo $var; ?>
출력 결과:
Hello World Welcome to Tutorialspoint Hello World Welcome to Tutorialspoint
예제 4: 변수 치환
Heredoc 문자열에서는 변수 값이 치환되어 삽입되지만, Nowdoc 문자열에서는 변수가 치환되지 않고 그대로 출력됩니다.
<?php $name = "Mahesh"; $var = <<< STR Hello $name Welcome to Tutorialspoint STR; echo $var . "\n"; // Nowdoc $var = <<<'STR' Hello $name Welcome to Tutorialspoint STR; echo $var; ?>
출력 결과:
Hello Mahesh Welcome to Tutorialspoint Hello $name Welcome to Tutorialspoint