속성 유형 힌트와 함께 "유형화된 속성이 초기화되지 않음" 오류가 발생할 수 있는 이유
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!