Maison > développement back-end > PHP8 > le corps du texte

Les nouvelles fonctionnalités de PHP8, l'attribut constructeur, sont grandement améliorées !

藏色散人
Libérer: 2023-02-17 11:32:01
avant
6039 Les gens l'ont consulté


Les nouvelles fonctionnalités de PHP8, lattribut constructeur, sont grandement améliorées !

La nouvelle version de PHP sera officiellement publiée le 3 décembre. En plus d'un grand nombre de corrections de bugs et de petites améliorations, les développeurs du monde entier bénéficieront également de nouvelles fonctionnalités intéressantes. La liste n'est pas encore terminée, mais nous pouvons jeter un œil aux nouvelles fonctionnalités que nous attendons avec impatience. Je vais vous préparer une série de courts articles qui se concentreront sur chacun d’eux, alors commençons !

Dans le premier article, je vous présente le Levage de propriété constructeur. PHP8 introduira un concept célèbre dans des langages comme Hack, Korlin ou TypesScript. Comment ça marche et dans quelles situations peut-on l’utiliser ? Regardons l'exemple suivant :

Alt Text

Objet numérique assez simple, n'est-ce pas ? Nous traitons de ce type presque tous les jours. Chaque fois que nous devons transmettre une valeur d'un paramètre de constructeur à une propriété de la classe, nous devons écrire l'intégralité du bloc de code du modèle comme le montre la figure, ce qui est en effet un peu ennuyeux. La fonction de promotion des attributs du constructeur résoudra ce problème pour nous et pourra rendre l'écriture de code similaire plus courte et plus simple. Voyons comment l'utiliser :

Alt Text

Nous pouvons simplement ajouter un modificateur d'accès avant la déclaration de type du paramètre constructeur, puis le paramètre sera automatiquement affecté à l'attribut Class du même nom. On peut comprendre que dans le constructeur, les paramètres avec des modificateurs d'accès seront promus et deviendront des attributs de classe du même nom.

Vous pouvez mélanger les promotions immobilières avec les déclarations de propriété régulières. Comme le montre l'exemple suivant :

Les nouvelles fonctionnalités de PHP8, lattribut constructeur, sont grandement améliorées !

L'exemple de code ci-dessus est équivalent au code de l'exemple suivant :

Les nouvelles fonctionnalités de PHP8, lattribut constructeur, sont grandement améliorées !

La promotion de l'attribut constructeur (Constructor Property Promotion) ne peut être utilisée que dans les classes normales et les traits classes de référence. Elle ne peut pas être utilisée dans les interfaces et les classes abstraites (bien que nous puissions déclarer des constructeurs dans ces classes).

Si votre code utilise beaucoup d'objets de valeur (VO) ou de objets de transfert de données (DTO) , la promotion de la propriété du constructeur simplifiera et raccourcira considérablement votre code. Des demandes de fonctionnalités similaires ont été discutées à plusieurs reprises, mais seule l'implémentation écrite par Nikita Popov a reçu suffisamment de critiques favorables pour qu'elle soit fusionnée dans la nouvelle version de PHP. Vous pouvez en savoir plus à ce sujet dans cette RFC.

Dans la prochaine partie de la série "Inside PHP8", nous discuterons de l'implémentation des types d'union. Restez à l'écoute!


Cet article a été initialement publié sur notre blog. Vous pouvez cliquer ici pour voir.


Adresse originale : https://dev.to/avantar/pe-into-php8-pa...

Adresse de traduction : https://learnku. com/laravel/t/47600

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!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal