


Pourquoi est-ce que j'obtiens l'erreur « La propriété typée ne doit pas être accessible avant l'initialisation » en PHP ?
Erreur "La propriété typée ne doit pas être accessible avant l'initialisation" après l'ajout d'indices de type de propriété
Lors de l'introduction d'indices de type de propriété dans vos classes PHP, vous pouvez rencontrer une erreur indiquant , "La propriété typée ne doit pas être accessible avant l'initialisation." Cette erreur se produit lors de l'accès à une propriété avant qu'elle n'ait été initialisée avec une valeur valide correspondant à son type déclaré.
Cause
Selon l'indication de type de PHP 7.4 pour les propriétés, toutes les propriétés doivent avoir valeurs correspondant à leurs types déclarés. Une propriété non attribuée est dans un état indéfini et ne correspondra à aucun type déclaré, même nul.
Exemple
Considérez le code suivant :
class Foo { private int $id; private ?string $val; private DateTimeInterface $createdAt; private ?DateTimeInterface $updatedAt; // Getters and setters omitted for brevity... } $f = new Foo(1); $f->getVal(); // Error: Typed property Foo::$val must not be accessed before initialization
Dans cet exemple, accéder à la propriété $val sans lui attribuer de chaîne ou de valeur nulle lance d'abord un erreur.
Solution
Valeurs par défaut :
Vous pouvez attribuer des valeurs par défaut aux propriétés lors de la déclaration :
class Foo { private ?string $val = null; // Default null value for optional property }
Initialisation du constructeur :
Initialiser les propriétés dans le constructeur :
class Foo { public function __construct(int $id) { // Assign values to all properties $this->id = $id; $this->createdAt = new DateTimeImmutable(); $this->updatedAt = new DateTimeImmutable(); } }
Types nullables :
Pour les propriétés facultatives, déclarez-les comme nullables :
private ?int $id;
Valeurs générées par la base de données (ID générés automatiquement) :
Utilisez des types nullables pour les propriétés initialisées par le base de données :
private ?int $id = null;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)

Travailler avec les données de session Flash dans Laravel

Construisez une application React avec un Laravel Back End: Partie 2, React

Misque de réponse HTTP simplifié dans les tests Laravel

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST

12 meilleurs scripts de chat PHP sur Codecanyon

Annonce de l'enquête sur la situation en 2025 PHP
