티스토리 뷰
반응형
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 코드와의 호환성 문제 가능성입니다.
반응형
'배움 > PHP' 카테고리의 다른 글
artisan 명령어 (0) | 2025.05.08 |
---|---|
Carbon::createFromFormat 문제 해결 방법 (1) | 2025.04.30 |
PHP collect 함수와 예제들 (0) | 2025.04.28 |
Laravel 11 Eloquent: Relationships 연관관계 (0) | 2025.04.25 |
PHP HTML parser 방법 (0) | 2025.04.17 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- laravel 테스트
- laravel 11
- curl_multi_init
- 설정
- array_combine
- uniqid
- #collect
- flask
- strict_types
- Laravel
- reflectionclass
- laravel 12
- 설치
- php
- createfromformat
- call_user_func
- eloquent
- swagger
- ob_get_contents
- mysql
- 비동기
- privatechannel
- PYTHON
- ubuntu
- wsl
- WSL2
- 명령어
- facades
- researcher
- jp:a
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
글 보관함