Comment utiliser les traits en php

王林
Libérer: 2023-03-09 12:56:01
avant
2245 Les gens l'ont consulté

Comment utiliser les traits en php

1. Savez-vous quels sont les traits en php ?

Cela ressemble à la fois à une classe et à une interface, mais ce n'est ni l'un ni l'autre.

Trait peut être considéré comme une implémentation partielle d'une classe, qui peut être mélangée à une ou plusieurs classes PHP existantes. Il a deux fonctions : indiquer ce que la classe peut faire et fournir une implémentation modulaire. Trait est une technologie de réutilisation de code qui fournit un mécanisme flexible de réutilisation de code pour la restriction d'héritage unique de PHP.

2. Exigences de la version PHP :

php5.4 a commencé à introduire des traits, dont le but est de réduire la duplication de code et d'augmenter la réutilisabilité du code.

3. Scénarios d'utilisation des traits :

Imaginez une situation comme celle-ci lorsqu'il y a une méthode qui doit être utilisée dans de nombreuses classes, comment la gérer ?

Habituellement, l'approche générale consiste à écrire une classe de base, à implémenter cette méthode dans la classe de base, puis toutes les classes héritent de cette classe de base.

C'est une façon de gérer ce problème, mais ce n'est pas la meilleure façon de le gérer. L'héritage est généralement utilisé lorsque plusieurs classes présentent de grandes similitudes. Par exemple, en tant que classe de base, les personnes, les étudiants, les travailleurs, etc. héritent de la classe de base « personne » à étendre.

Ainsi, le rôle du trait apparaît. Le trait peut être utilisé dans plusieurs classes.

4. Comment utiliser les traits :

Citer des exemples dans le manuel PHP :

Exemple 1

<?php
trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}

class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
}

class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
}
?>
Copier après la connexion

1 Déclarez d'abord un trait ; >

2. Utilisez l'utilisation en classe pour introduire le trait.

Est-ce très simple (évasion manuelle) ? Ce qu’il faut noter, c’est la priorité des traits.

(Partage de vidéos d'apprentissage gratuit :

Tutoriel vidéo php)

5. Priorité des traits

(Frappez au tableau) Membres hérités de la base. class Sera écrasé par les membres insérés par trait. L'ordre de priorité est que les membres de la classe actuelle remplacent les méthodes du trait et que le trait remplace les méthodes héritées.

Priorité : méthode propre>méthode des traits>méthode héritée (voici à quoi elle ressemble.)

Regardez l'exemple

<?php
trait HelloWorld {
    public function sayHello() {
        echo &#39;Hello World!&#39;;
    }
}

class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo &#39;Hello Universe!&#39;;
    }
}

$o = new TheWorldIsNotEnough();
$o->sayHello();//输出是 Hello Universe!
?>
Copier après la connexion

Une autre chose à noter est : utilisation de plusieurs traits.

<?php
trait Hello {
    public function sayHello() {
        echo &#39;Hello &#39;;
    }
}

trait World {
    public function sayWorld() {
        echo &#39;World&#39;;
    }
}

class MyHelloWorld {
    use Hello, World;
    public function sayExclamationMark() {
        echo &#39;!&#39;;
    }
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?>
Copier après la connexion
Résumé : Trait est une technologie de réutilisation de code qui fournit un mécanisme flexible de réutilisation de code pour la restriction d'héritage unique de PHP.

Recommandations associées :

Tutoriel 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!

Étiquettes associées:
source:csdn.net
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