La fonction des traits php est conçue pour les langages à héritage unique tels que php. Elle est conçue pour permettre aux développeurs de partager facilement une série de méthodes entre plusieurs classes dans différents systèmes d'héritage afin de réduire les problèmes causés. par des limitations d’héritage unique.
Traits
est conçu pour les langages à héritage unique comme php. Il est conçu pour permettre aux développeurs de partager facilement une série de méthodes entre plusieurs classes dans différents systèmes d'héritage afin de réduire les limitations causées par l'héritage unique. La combinaison de traits et de classes évite une série de problèmes causés par l’héritage multiple.
Utilisation de
Regardez d'abord l'exemple donné dans le document officiel :
<?php trait ezcReflectionReturnInfo { function getReturnType() { /*1*/ } function getReturnDescription() { /*2*/ } } class ezcReflectionMethod extends ReflectionMethod { use ezcReflectionReturnInfo; /* ... */ } class ezcReflectionFunction extends ReflectionFunction { use ezcReflectionReturnInfo; /* ... */ } ?>
Comme le montre l'exemple ci-dessus, l'ensemble de fonctionnalités ezcReflectionReturnInfo
contient deux méthodes : getReturnType
et getReturnDescription
, tandis que les deux sous-classes suivantes héritent de classes parents différentes, mais peuvent réutiliser ces deux méthodes via use ezcReflectionReturnInfo
. Simple et pratique.
Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise
Notes
S'il existe des méthodes portant le même nom dans les traits de la sous-classe, de la classe parent et de l'utilisation, alors la priorité de ces trois méthodes est : subclass> tratis >
Vous pouvez utiliser plusieurs traits en même temps, mais vous ne pouvez pas utiliser des traits portant le même nom<?php trait A { public function smallTalk() { echo 'a'; } public function bigTalk() { echo 'A'; } } trait B { public function smallTalk() { echo 'b'; } public function bigTalk() { echo 'B'; } } class Talker { use A, B { B::smallTalk insteadof A; A::bigTalk insteadof B; } }
class Aliased_Talker { use A, B { B::smallTalk insteadof A; A::bigTalk insteadof B; B::bigTalk as talk; } }
class MyClass2 { use HelloWorld { sayHello as private myPrivateHello; } }
<?php trait Hello { public function sayHello() { echo 'Hello '; } } trait World { public function sayWorld() { echo 'World!'; } } trait HelloWorld { use Hello, World; }
Les traits peuvent définir des variables régulières, des variables statiques et des méthodes
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!