PHP는 풍부한 문자열 지원을 갖추고 있습니다. 서로 다른 따옴표 스타일(보간 동작이 다름), 연결, 그리고 방대한 문자열 함수 라이브러리가 있습니다. 따옴표 차이와 함수 집합을 이해하는 것은 일상 지식입니다.
따옴표: 작은따옴표 vs 큰따옴표 (보간)
<?php
$name = "Ann";
'Hello $name';
;
;
핵심 차이는 다음과 같습니다. 큰따옴표는 변수를 보간하고($name이 그 값으로 대체됨), 작은따옴표는 리터럴입니다(더 빠르고, 보간 없음). 객체 프로퍼티 같은 복잡한 표현식에는 {}를 사용합니다.
$greeting = "Hello, " . $name . "!"; // . 는 연결 연산자 (+ 아님)
$greeting .= " Welcome."; // .= 는 덧붙임
PHP는 문자열 연결에 .를 사용합니다(+는 숫자용) — 흔한 혼동 지점입니다.
$html = <<<HTML
<div>$name</div> // heredoc — 보간됨 (큰따옴표처럼)
HTML;
$raw = <<<'TEXT'
Literal $name // nowdoc (따옴표로 감싼 라벨) — 보간 없음 (작은따옴표처럼)
TEXT;
strlen($s); // 길이
strtoupper($s); strtolower($s);
trim($s); // 양쪽 공백 제거
str_replace("old", "new", $s);
strpos($s, "needle"); // 위치 찾기 (없으면 false — === false 사용)
substr($s, 0, 5); // 부분 문자열 추출
explode(",", $csv); // 배열로 분할
implode(",", $array); // 배열을 문자열로 결합
sprintf("%.2f", 3.14159); // 형식화된 출력 → "3.14"
str_contains($s, "x"); // PHP 8: 더 깔끔한 부분 문자열 검사
mb_strlen($s); // ✅ 멀티바이트(UTF-8) 텍스트의 올바른 길이
strlen($s); // ⚠️ 문자가 아닌 바이트를 셈 — 비ASCII에서는 틀림
비ASCII/유니코드 텍스트에는 mb_* 함수(mb_strlen, mb_substr)를 사용하세요 — 일반 함수는 문자가 아닌 바이트를 세어 멀티바이트 텍스트에서 깨집니다.
문자열 조작은 웹 개발에 만연해 있으므로(HTML 구축, 입력 처리, 출력 형식화, 데이터 파싱), PHP의 문자열 처리를 이해하는 것은 필수적인 일상 지식입니다.
가장 중요한 실무 요점은 다음과 같습니다. 작은따옴표 vs 큰따옴표 구분(큰따옴표는 변수를 보간, 작은따옴표는 리터럴)은 기본적이고 초보자가 자주 혼동하는 부분이며, PHP는 연결에 .를 사용하고(+ 아님), 흔한 작업(검색, 치환, 분할/결합, 형식화)을 위한 방대한 문자열 함수 라이브러리를 갖추고 있습니다.
결정적으로, 비영어/유니코드 텍스트를 다루는 모든 애플리케이션에서는 일반 함수(바이트를 세어 멀티바이트 텍스트를 손상시킴) 대신 mb_*(멀티바이트) 함수를 사용해야 함을 아는 것이 실제 버그를 예방합니다.
PHP의 따옴표 동작, 연결, 문자열 함수 라이브러리(멀티바이트 안전성 포함)에 능숙해지는 것은 웹 개발이 수반하는 끊임없는 문자열 작업을 위한 핵심 지식입니다.