>백엔드 개발 >PHP 튜토리얼 >PHP에서 Declar(strict_types=in PHP)를 사용하는 이유 – 빠른 팁

PHP에서 Declar(strict_types=in PHP)를 사용하는 이유 – 빠른 팁

PHPz
PHPz원래의
2024-08-12 18:43:19846검색

Why use declare(strict_types=in PHP – Fast tips

이 튜토리얼에서는 선언(strict_types=1)의 의미, PHP 개발자가 이를 사용해야 하는 이유와 사용하지 말아야 하는 이유를 살펴보고 그 중요성을 보여주는 예를 제공합니다.

이 설정은 PHP의 느슨한 유형 특성과 Java와 같이 널리 사용되는 다른 언어에서 주도하는 엄격한 유형의 기능에 대한 수요 증가로 인해 발생합니다.

두 가지 타이핑 전략(느슨함 vs 엄격함)에는 장단점이 있습니다. 우선 그 의미를 이해해 봅시다.

느슨한 형식의 언어

동적 유형 언어라고도 알려진 느슨한 유형 언어는 컴파일 타임에 변수가 특정 데이터 유형에 바인딩되지 않는 프로그래밍 언어입니다. 실행 중에 변수에 포함될 데이터 유형을 미리 선언할 필요가 없습니다.

변수의 데이터 유형은 해당 값에 따라 결정되며 런타임에 변경될 수 있습니다.

PHP는 기본적으로 느슨한 형식의 언어이므로 이를 사용하여 예제를 작성할 수 있습니다.

$a = "hello";
$a = 1; 
// No errors. The content of the variable is changed from string to int.

느슨한 유형의 언어는 종종 암시적 유형 변환을 허용합니다. 즉, 작업을 용이하게 하기 위해 데이터를 한 유형에서 다른 유형으로 자동 변환할 수 있습니다. 이러한 동작은 유연성을 높여주지만 기능 오류가 발생할 가능성도 높아집니다.

엄격한 형식의 언어

정적 유형 언어라고도 알려진 엄격한 유형 언어는 컴파일 타임에 특정 데이터 유형으로 변수를 명시적으로 선언해야 하는 프로그래밍 언어입니다.

변수의 데이터 유형이 정의되면 수명 동안 변경할 수 없습니다. 엄격한 유형의 언어는 암시적 유형 변환을 수행하지 않습니다. 즉, 서로 다른 유형의 변수 간의 작업은 일반적으로 컴파일 오류를 발생시킵니다.

Java로 예제를 작성할 수 있습니다.

public class CompileError {
    public static void main(String[] args) {

        int x = 15;
        x = "Valerio";

    }
}

선언(strict_types=1)이란 무엇입니까?

declare(strict_types=1)은 특정 PHP 파일 또는 코드 블록 내에서 함수 및 메서드 인수와 반환 값에 대해 엄격한 유형 검사를 시행하는 PHP의 지시어입니다. 엄격한 유형 검사를 활성화하면 PHP는 함수 인수 및 반환 값의 데이터 유형이 선언된 유형과 정확히 일치하는지 확인합니다. Java와 완전히 동일한 방식입니다.

엄격한 입력을 활성화하려면 PHP 파일이나 코드 블록의 시작 부분(다른 코드 앞)에 이 선언을 배치하세요.

엄격한 유형 검사를 활성화하는 기본 구문은 다음과 같습니다.

<?php

declare(strict_types=1);

function speak(string $name): string 
{
    return "Hello {$name}!";
}

speak(1); // This fires the error "Uncaught TypeError"
speak("Valerio"); // This prints "Hello Valerio!"

왜 선언(strict_types=1)을 사용합니까?

엄격한 유형 지정을 적용하면 특정 시나리오에서 코드의 안정성이 크게 향상될 수 있습니다.

엄격한 유형 지정은 런타임 오류나 잘못된 동작으로 이어질 수 있는 예기치 않은 유형 관련 문제를 방지하는 데 도움이 됩니다. 이를 통해 항상 기대하는 데이터 유형으로 작업할 수 있습니다.

예를 들어 두 개의 숫자를 더해야 하는 함수를 생각해 보세요.

function add($a, $b) 
{
    return $a + $b;
}

$result = add(5, '10'); // Without strict typing, this is allowed.
echo $result; // Output: 15

엄격한 유형이 없으면 PHP는 문자열 '10'을 정수로 강제 변환하여 의도한 것과 다른 결과를 생성할 수 있습니다.

선언(strict_types=1) 사용:

declare(strict_types=1);

function add(int $a, int $b) 
{
    return $a + $b;
}

$result = add(5, '10'); // Fatal error: Uncaught TypeError

엄격한 유형이 활성화되면 PHP는 TypeError를 발생시키고 함수 실행을 방지하여 유형 안전성을 보장합니다.

어떤 전략을 선택해야 할까요?

원래 기사에 이어 --> https://inspector.dev/why-use-declarestrict_types1-in-php-fast-tips/

위 내용은 PHP에서 Declar(strict_types=in PHP)를 사용하는 이유 – 빠른 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.