배움/PHP
PHP strict_types 기능
spaces25
2025. 4. 29. 13:48
반응형
PHP의 strict_types 기능은 함수나 메서드의 인자 및 반환값의 타입 강제 여부를 제어하는 기능입니다. 이 기능은 파일 단위로 적용되며, declare(strict_types=1); 구문을 통해 활성화할 수 있습니다.
🔧 기본 문법
<?php
declare(strict_types=1);
function add(int $a, int $b): int {
return $a + $b;
}
echo add(5, 3); // 정상 작동
echo add(5, "3"); // TypeError 발생 (strict_types가 활성화되어 있기 때문)
🚨 주요 특징
- strict_types=1을 선언하면, 스칼라 타입 힌트(int, float, string, bool)에 대해 암시적 타입 변환이 허용되지 않습니다.
- 선언하지 않거나 strict_types=0이면, PHP는 암시적으로 타입을 변환하려고 시도합니다 (약한 타입 검사).
- 선언 위치는 반드시 PHP 파일 최상단, namespace 이전이어야 합니다.
💡 사용 예시 비교
1. 약한 타입 (기본값)
<?php
function add(int $a, int $b): int {
return $a + $b;
}
echo add(5, "3"); // 정상 작동: "3"은 자동으로 int로 변환됨
2. 엄격한 타입 (strict_types=1)
<?php
declare(strict_types=1);
function add(int $a, int $b): int {
return $a + $b;
}
echo add(5, "3"); // TypeError 발생
✅ 요약
- strict_types는 정적 타입 언어처럼 PHP를 더 엄격하게 만들고 싶을 때 유용합니다.
- 디버깅, 유지보수, 코드 안정성을 높이는 데 도움을 줍니다.
- 단점은 기존 PHP 코드와의 호환성 문제 가능성입니다.
반응형