티스토리 뷰

배움/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 코드와의 호환성 문제 가능성입니다.
반응형

'배움 > 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
링크
«   2025/08   »
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
글 보관함