Menu

PHP 문자열: 따옴표, 문자열 연결, 변수 삽입

PHP 문자열은 점 연산자로 연결하거나("Hello, " . $name) 큰따옴표 안에 변수를 바로 넣습니다("Hello, $name"). 작은따옴표는 적힌 그대로 출력합니다. 연결, .=, 배열과 객체 보간, strtoupper, strtolower, ucfirst, ucwords로 대소문자 바꾸기를 배웁니다.

이 페이지에는 실행 가능한 에디터가 있습니다 - 편집하고 실행하면 결과를 바로 볼 수 있습니다.

PHP 문자열은 작은따옴표나 큰따옴표로 감싼 텍스트입니다. 점 연산자로 문자열을 연결하거나($first . ' ' . $last), 큰따옴표 안에 변수를 바로 넣습니다: "Hello, $name".

점은 두 값을 새 문자열 하나로 연결합니다. 숫자는 알아서 변환되므로 "Total: " . 42는 "Total: 42"입니다.

작은따옴표와 큰따옴표

큰따옴표는 두 가지를 더 합니다. 변수를 값으로 바꾸고, \n(줄바꿈)이나 \t(탭) 같은 이스케이프 시퀀스를 해당 문자로 바꿉니다. 작은따옴표는 \'와 \\를 제외하고 텍스트를 적힌 그대로 출력합니다.

고정된 텍스트에는 작은따옴표를, 변수나 \n을 넣고 싶을 때는 큰따옴표를 쓰세요. 둘의 속도 차이는 측정하기 어려울 만큼 작으므로, 그 줄을 읽기 쉽게 만드는 쪽을 고르세요.

.과 .=로 문자열 연결

.=는 문자열 변수 끝에 덧붙입니다. HTML 조각처럼 반복문에서 텍스트를 쌓아 갈 때 흔히 쓰는 방법입니다. 이 블록을 실행하면 에디터가 Page 탭을 열어 렌더링된 목록을 보여 줍니다.

.와 산술 연산을 섞을 때는 우선순위가 중요합니다. PHP 8부터 +와 -가 .보다 먼저 결합하므로 "Sum: " . 2 + 3은 "Sum: 5"입니다. 괄호를 쓰면 다음에 읽는 사람에게 분명해집니다: "Sum: " . (2 + 3).

문자열 안에 변수, 배열, 객체 넣기

일반 변수는 큰따옴표 안에서 그대로 동작합니다. 배열 요소, 객체 속성 체인, 메서드 호출은 표현식을 중괄호로 감싸세요. 중괄호는 변수와 그 뒤에 오는 문자를 구분하는 역할도 합니다.

중괄호 안에서 메서드는 동작하지만 일반 함수는 동작하지 않습니다. 마지막 줄은 $fruit의 값 주위에 중괄호와 함수 이름을 그대로 출력합니다. 문자열 앞에서 함수를 호출하거나, 값이 많은 문자열에는 sprintf를 쓰세요.

대소문자 바꾸기: strtoupper, strtolower, ucfirst, ucwords

이 함수들은 바이트 단위로 동작하며 a부터 z까지의 글자만 바꿉니다. 악센트, 키릴 문자, 그리스 문자가 있는 텍스트에는 UTF-8을 이해하는 멀티바이트 버전을 쓰세요.

한 글자씩 읽기와 문자열 반복

문자열은 배열처럼 인덱스로 접근할 수 있습니다. 음수 오프셋은 끝에서부터 셉니다. 글자 수 세기는 strlen을 보세요.

흔한 실수: . 대신 +

JavaScript에서는 +가 문자열을 연결합니다. PHP에서 +는 항상 산술입니다. 숫자 형태의 문자열은 숫자로 더해지고, 숫자가 아닌 텍스트는 에러를 던집니다.

연결된 텍스트를 기대했는데 숫자가 보이거나 Unsupported operand types: string + string이 나온다면, .여야 할 +를 찾아보세요.

자주 묻는 질문

PHP에서 문자열은 어떻게 연결하나요?

점 연산자를 쓰세요: $full = $first . ' ' . $last;. 기존 문자열 뒤에 덧붙이려면 .=를 씁니다: $html .= '<li>Item</li>';. + 연산자는 숫자용이며, PHP 8에서 "Hello" + "World"는 TypeError를 던집니다.

PHP에서 작은따옴표와 큰따옴표의 차이는 무엇인가요?

큰따옴표는 변수와 이스케이프 시퀀스를 치환합니다: "Hi $name\n"은 $name의 값과 줄바꿈을 출력합니다. 작은따옴표는 거의 모든 것을 적힌 그대로 출력합니다: 'Hi $name\n'은 달러 기호, 이름, 백슬래시와 n을 출력합니다. 작은따옴표 안에서 이스케이프는 \'와 \\뿐입니다.

PHP 문자열 안에 배열 값을 넣으려면 어떻게 하나요?

중괄호로 감싸세요: "Hello, {$user['name']}". 객체 속성과 메서드 호출도 같습니다: "{$user->getName()}". 단순한 키라면 중괄호 없이 "$user[name]"(키에 따옴표 없음)도 동작합니다.

PHP에서 문자열을 대문자나 소문자로 바꾸려면 어떻게 하나요?

strtoupper('php')는 PHP를, strtolower('PHP')는 php를 반환하고, ucfirst('hello')는 첫 글자를, ucwords('hello world')는 모든 단어의 첫 글자를 대문자로 바꿉니다. 악센트가 있거나 라틴 문자가 아닌 텍스트에는 mb_strtoupper()와 mb_strtolower()를 쓰세요.

Coddy 프로그래밍 언어 일러스트

Coddy로 코딩 배우기

시작하기