Maison  >  Article  >  développement back-end  >  Comment utiliser Constructor Property Promotion pour simplifier la déclaration de propriété de classe en PHP8 ?

Comment utiliser Constructor Property Promotion pour simplifier la déclaration de propriété de classe en PHP8 ?

王林
王林original
2023-10-19 09:16:571193parcourir

PHP8中如何使用Constructor Property Promotion来简化类的属性声明?

PHP8 est la dernière version du langage de programmation PHP, qui introduit une fonctionnalité puissante, Constructor Property Promotion. Cette fonctionnalité rend très simple et élégante la définition et l’initialisation des propriétés dans le constructeur d’une classe. Cet article présentera en détail l’utilisation de Constructor Property Promotion et illustrera sa commodité à travers des exemples de code spécifiques.

Tout d’abord, examinons comment nous définissons et initialisons les propriétés dans les classes en PHP7 et les versions précédentes. Normalement, nous devons déclarer les propriétés en haut de la classe et les initialiser dans le constructeur. Une telle structure de code peut conduire à des duplications et à du code redondant.

Par exemple, considérons une classe User qui contient des attributs de nom, d'âge et d'e-mail. Nous pouvons définir et initialiser ces attributs en utilisant la méthode PHP7 :

class User {
    private $name;
    private $age;
    private $email;

    public function __construct($name, $age, $email) {
        $this->name = $name;
        $this->age = $age;
        $this->email = $email;
    }
}

Comme vous pouvez le voir, en haut de la classe, nous devons déclarer explicitement. chaque propriété et initialisez-les manuellement dans le constructeur. Cette approche rend le code verbeux et répétitif.

En PHP8, nous pouvons utiliser Constructor Property Promotion pour simplifier le code ci-dessus. En ajoutant le modificateur d'accès et le nom de la propriété devant le paramètre constructeur, nous pouvons le définir automatiquement comme une propriété de la classe et terminer l'affectation de la propriété en même temps.

Ce qui suit est un exemple de code utilisant Constructor Property Promotion :

class User {
    public function __construct(
        private $name,
        private $age,
        private $email
    ) {}
}

Comme vous pouvez le voir, en PHP8, il suffit de lister les propriétés que nous voulons définir dans le constructeur et de marquer leurs modificateurs d'accès et leurs noms de propriété. Les noms d'attributs dans la liste des paramètres du constructeur deviendront automatiquement des attributs de la classe et l'opération d'affectation sera terminée dans le constructeur. Cela réduit considérablement le code redondant.

En plus de simplifier la déclaration et l'initialisation des propriétés, Constructor Property Promotion apporte également des avantages supplémentaires. Premièrement, cela améliore la lisibilité du code et rend les définitions de propriétés de la classe plus ciblées et plus claires. Deuxièmement, cela améliore également la maintenabilité du code, car les propriétés déclarées dans le constructeur seront visibles dans toute la classe, éliminant ainsi le besoin d'écrire des méthodes getter et setter supplémentaires.

De plus, lorsque vous utilisez Constructor Property Promotion, vous pouvez également définir des valeurs par défaut pour les propriétés. Si aucun paramètre correspondant n'est fourni dans le constructeur, la valeur par défaut sera utilisée.

Voici un exemple de code Constructor Property Promotion avec des valeurs par défaut :

class User {
    public function __construct(
        private $name = 'John',
        private $age = 20,
        private $email = 'john@example.com'
    ) {}
}

Dans l'exemple ci-dessus, si les paramètres correspondants ne sont pas fournis lors de la création de l'objet User, les valeurs par défaut seront utilisées. Sinon, la valeur du paramètre transmise sera utilisée pour l'affectation.

Pour résumer, Constructor Property Promotion est une fonctionnalité puissante introduite dans PHP8, qui rend très simple et élégante la définition et l'initialisation des propriétés dans le constructeur d'une classe. Il réduit considérablement le code redondant et améliore la lisibilité et la maintenabilité du code. Lorsqu'elles sont utilisées, des valeurs par défaut peuvent être définies pour les propriétés, augmentant encore sa flexibilité. L’émergence de cette fonctionnalité apporte sans aucun doute une expérience de programmation plus agréable et plus efficace aux développeurs PHP.

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!

Déclaration:
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