> 백엔드 개발 > PHP 튜토리얼 > PHP 7.4 속성 유형 힌트에서 \'유형화된 속성이 초기화되지 않음\' 오류가 발생하는 이유는 무엇입니까?

PHP 7.4 속성 유형 힌트에서 \'유형화된 속성이 초기화되지 않음\' 오류가 발생하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-17 15:56:02
원래의
606명이 탐색했습니다.

Why Do I Get a

속성 유형 힌트와 함께 "유형화된 속성이 초기화되지 않음" 오류가 발생할 수 있는 이유

PHP 7.4에서 새로운 속성 유형 힌트를 활용하는 경우 , 모든 속성에 유효한 값을 제공하는 것이 중요합니다. null 값과 달리 정의되지 않은 속성은 선언된 유형과 일치하지 않습니다.

예를 들어 다음 클래스를 사용하는 경우:

class Foo {
    private int $id;
    private ?string $val;
    private DateTimeInterface $createdAt;
    private ?DateTimeInterface $updatedAt;

    public function __construct(int $id) {
        $this->id = $id;
    }
}
로그인 후 복사

$val에 직접 액세스하면 "유형화된 속성이 초기화되지 않음"이 발생합니다. 유효한 값(문자열도 아니고 null도 아님)이 없기 때문에 " 오류가 발생합니다.

이 문제를 해결하려면 초기화 시 모든 속성에 적절한 값이 있는지 확인하세요. 생성 중 기본값 또는 설정 값은 두 가지 옵션입니다.

class Foo {
    private int $id;
    private ?string $val = null;
    private DateTimeInterface $createdAt;
    private ?DateTimeInterface $updatedAt;

    public function __construct(int $id) {
        $this->id = $id;
        $this->createdAt = new DateTimeImmutable();
        $this->updatedAt = new DateTimeImmutable();
    }
}
로그인 후 복사

자동 생성 ID의 경우 권장되는 접근 방식은 속성을 nullable로 정의하는 것입니다.

private ?int $id = null;
로그인 후 복사

정의되지 않은 속성을 기억하세요. null 값이 없으며 해당 값은 항상 선언된 유형과 일치해야 합니다. 초기값이나 기본값을 제공하면 이러한 초기화 오류를 방지하고 유효한 인스턴스 상태를 보장할 수 있습니다.

위 내용은 PHP 7.4 속성 유형 힌트에서 \'유형화된 속성이 초기화되지 않음\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿