Maison >développement back-end >PHP8 >Exemple de nouvelles fonctionnalités en PHP8 : Comment utiliser la déduction d'attributs et le code pour réduire le code en double ?

Exemple de nouvelles fonctionnalités en PHP8 : Comment utiliser la déduction d'attributs et le code pour réduire le code en double ?

王林
王林original
2023-09-12 19:15:27629parcourir

Exemple de nouvelles fonctionnalités en PHP8 : Comment utiliser la déduction dattributs et le code pour réduire le code en double ?

PHP8 est la dernière version du langage de programmation PHP, officiellement publiée le 26 novembre 2020. En tant que langage largement utilisé dans le développement Web, PHP8 apporte de nombreuses nouvelles fonctionnalités intéressantes, notamment des capacités d'inférence de propriétés et de réduction de code. Cet article présentera quelques exemples d’utilisation de ces nouvelles fonctionnalités.

1. Dérivation d'attributs

Dans les versions précédentes de PHP, nous devions définir manuellement les méthodes getter et setter pour les attributs de classe afin d'accéder et de modifier les attributs. Mais en PHP8, nous pouvons utiliser la déduction d'attributs pour simplifier ce processus.

Considérons l'exemple suivant, nous créons une classe Person avec deux propriétés : nom et âge :

class Person {
    public string $name;
    public int $age;

    public function getName(): string {
        return $this->name;
    }

    public function setName(string $name): void {
        $this->name = $name;
    }

    public function getAge(): int {
        return $this->age;
    }

    public function setAge(int $age): void {
        $this->age = $age;
    }
}

En PHP8, nous pouvons utiliser la dérivation de propriété pour simplifier ce code :

class Person {
    public function __construct(
        public string $name,
        public int $age,
    ) {}
}

En utilisant la dérivation de propriété, nous pouvons directement définir les propriétés de la classe dans le constructeur et omettez la définition des méthodes getter et setter. Maintenant, nous pouvons instancier la classe Person et accéder aux propriétés de la manière suivante :

$person = new Person('John Doe', 25);
echo $person->name;  // 输出:John Doe
echo $person->age;  // 输出:25

Comme vous pouvez le voir, l'utilisation de la dérivation de propriétés simplifie grandement la structure du code et réduit l'écriture de code redondant.

2. Réduire la duplication de code

Dans PHP8, nous avons également introduit de nouvelles fonctions et fonctions qui peuvent être utilisées pour réduire la duplication de code. Deux de ces fonctionnalités seront présentées ci-dessous : les paramètres nommés et l'opérateur de coalescence nul.

  1. Paramètres nommés

Les paramètres nommés signifient que lorsqu'une fonction ou une méthode est appelée, les valeurs des paramètres peuvent être transmises en spécifiant les noms des paramètres. Cela réduit la dépendance à l'égard de l'emplacement des paramètres et améliore la lisibilité et la maintenabilité du code.

Considérez l'exemple suivant, nous avons une fonction qui calcule la somme de deux nombres :

function sum(int $a, int $b): int {
    return $a + $b;
}

echo sum(5, 10);  // 输出:15

Dans les versions précédentes, nous devions transmettre les valeurs des paramètres dans l'ordre dans lequel la fonction était définie. Mais en PHP8, nous pouvons utiliser des paramètres nommés pour appeler des fonctions :

echo sum(b: 5, a: 10);  // 输出:15

En spécifiant les noms des paramètres, nous pouvons transmettre les valeurs des paramètres dans n'importe quel ordre, rendant le code plus intuitif et lisible.

  1. Opérateur de coalescence nul

En PHP, nous devons souvent vérifier si une variable est nulle et fournir une valeur par défaut si elle est nulle. Dans les versions précédentes, nous utilisions généralement l'opérateur ternaire ou l'instruction if pour réaliser cette fonction.

Considérons l'exemple suivant, nous devons vérifier si une variable est nulle et lui fournir une valeur par défaut :

$username = isset($_GET['username']) ? $_GET['username'] : 'Guest';

En PHP8, nous pouvons utiliser l'opérateur de coalescence nul (??) pour simplifier ce code :

$username = $_GET['username'] ?? 'Guest';

If $ Si _GET['username'] n'est pas nul, attribuez sa valeur à $username ; sinon, attribuez 'Guest' à $username ;

En plus des exemples ci-dessus, PHP8 introduit également d'autres nouvelles fonctionnalités, telles que les expressions de correspondance, les déclarations de type de retour statique, etc. Ces fonctionnalités ont considérablement amélioré la fonctionnalité et la flexibilité de PHP.

Résumé :

Cet article présente deux nouvelles fonctionnalités de PHP8 : la déduction d'attributs et la réduction de code pour dupliquer du code. La dérivation de propriété rend la définition des propriétés de classe plus concise et intuitive, réduisant ainsi l'écriture de méthodes getter et setter redondantes. Les deux fonctions de paramètres nommés et d'opérateur de coalescence nul améliorent la lisibilité et la maintenabilité du code. Avec la sortie de PHP8, nous pourrons écrire plus facilement du code PHP concis et efficace.

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

Articles Liés

Voir plus