개발노트
고즐의 개발 및 서버 개발 노트![]()
PHP 8.x 실무에서 자주 사용하는 명령어와 최신 문법 정리
PHP는 8.x 시대에 들어오면서 성능과 문법이 크게 개선되었다. 특히 문자열 처리, 배열 함수, 파일 입출력, 그리고 최신 문법인 nullsafe operator와 match 표현식은 실무 유지보수 효율을 크게 높여준다. 아래 내용은 PHP 개발자가 반드시 알아야 하는 함수와 문법을 실전 중심으로 정리한 것이다.
기본 출력 및 디버깅 함수
echo와 print
가장 기본적인 출력 함수이며, 간단한 결과 확인에 널리 사용된다. echo가 약간 더 빠르고 실무에서 권장되는 방식이다.
echo "Hello PHP"; print "World";
var_dump
디버깅에서 타입과 값 전체를 확인할 수 있어 API 연동이나 데이터 구조 점검 시 가장 많이 사용되는 함수 중 하나다.
var_dump($user);
print_r
사람이 읽기 좋게 배열 구조를 출력할 때 유용하다. 단, 타입 정보는 표시되지 않는다.
print_r($data);
문자열 처리 함수
explode와 implode
문자열과 배열을 상호 변환할 때 사용된다. 태그 분류, CSV 처리 등 실무에서 거의 매일 쓰이는 필수 함수다.
$tags = explode(",", "php,web,server");
$text = implode(" | ", $tags);
str_contains, str_starts_with, str_ends_with
PHP 8에서 추가된 고성능 문자열 탐색 함수들이다. 기존 strpos보다 가독성, 안정성 모두 뛰어나다.
if (str_contains($title, "PHP")) {...}
mb_substr와 mb_strlen
한국어 같은 멀티바이트 문자열 처리는 mb 계열 함수가 필수다. 문자열 잘림 방지와 정확한 길이 체크에 활용된다.
배열 처리 함수
array_map
배열 요소 전체에 특정 처리를 적용할 때 사용한다. 반복문보다 더 선언적이고 유지보수성이 좋다.
$upper = array_map('strtoupper', $items);
array_filter
조건에 맞는 요소만 걸러낼 때 쓰인다. 데이터 정제, API 응답 필터링 등에 유용하다.
$valid = array_filter($items, fn($v) => $v > 10);
array_column
DB 조회 결과에서 특정 컬럼만 추출해 ID 목록 등을 만들 때 실무에서 필수로 사용된다.
$ids = array_column($rows, 'id');
날짜와 시간 처리
date와 strtotime
가장 기본적인 날짜 포맷팅, 시간 계산에 사용된다. 간단한 작업에서는 여전히 가장 빠른 방식이다.
$next = date("Y-m-d", strtotime("+1 week"));
DateTime 클래스
DateTime은 날짜 계산, 시간대 처리, 비교 작업에서 강력하며, 다양한 포맷 출력 지원으로 유지보수성이 높다.
$dt = new DateTime();
$dt->modify("+2 days");
echo $dt->format("Y-m-d");
파일 처리 함수
file_get_contents와 file_put_contents
간단한 캐시, 설정 파일, 로그 파일 등을 다루기 위한 가장 효율적이고 빠른 I/O 함수이다.
$config = file_get_contents("config.json");
file_put_contents("log.txt", $text, FILE_APPEND);
file_exists, is_file, is_dir
파일 또는 디렉토리 존재 여부를 확인할 때 안정적인 검사 함수들이다. 업로드 처리나 설정 파일 검증에서 많이 사용된다.
PHP 8 최신 문법
Nullsafe operator (?->)
체이닝된 객체 접근 시 중간에 null이 발생해도 에러 없이 null을 반환하여 안전한 코드를 작성할 수 있다.
$name = $user?->profile?->name;
match 표현식
switch보다 간결하고 안전한 비교 연산을 제공한다. 반환값을 바로 변수에 담을 수 있어 코드가 단순해진다.
$result = match($status) {
200 => "OK",
404 => "Not Found",
default => "Unknown"
};
constructor property promotion
클래스 정의 시 멤버 변수 선언과 생성자 정의를 통합하여 매우 간결하고 현대적인 스타일로 코드를 작성할 수 있다.
class User {
public function __construct(
private string $name,
private int $age
) {}
}
보안 관련 필수 함수
password_hash와 password_verify
비밀번호를 안전하게 저장하고 검증할 때 반드시 사용해야 하는 함수다. PHP에서 공식적으로 지원하는 안전한 비밀번호 해싱 방식이다.
$hash = password_hash($pwd, PASSWORD_DEFAULT); password_verify($pwd, $hash);
filter_var
입력 데이터 검증, 이메일·URL 유효성 체크 등에 활용되며, XSS 같은 보안 취약점을 줄여준다.
결론
PHP 8.x는 성능뿐 아니라 문법 자체가 현대적으로 개선되면서 개발 효율을 크게 끌어올렸다. 특히 문자열 함수, 배열 함수, 파일 입출력, JSON 처리, nullsafe operator, match 표현식 등은 실무에서 사용 빈도가 매우 높다. 위에 정리한 함수와 문법만 제대로 익혀도 유지보수 속도와 코드 안정성이 눈에 띄게 향상된다.