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; /* ... */ } ?>
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 'Hello World!'; } } class TheWorldIsNotEnough { use HelloWorld; public function sayHello() { echo 'Hello Universe!'; } } $o = new TheWorldIsNotEnough(); $o->sayHello();//输出是 Hello Universe! ?>
<?php trait Hello { public function sayHello() { echo 'Hello '; } } trait World { public function sayWorld() { echo 'World'; } } class MyHelloWorld { use Hello, World; public function sayExclamationMark() { echo '!'; } } $o = new MyHelloWorld(); $o->sayHello(); $o->sayWorld(); $o->sayExclamationMark(); ?>
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!