Diferencia entre revisiones de «Traits»
Ir a la navegación
Ir a la búsqueda
Línea 1: | Línea 1: | ||
= General = | = General = | ||
PHP solo admite herencia simple. Una clase secundaria solo puede heredar de un solo padre. | |||
¿Qué pasa si una clase necesita heredar múltiples comportamientos? Los ''traits'' de la Programación Orientada a Objetos resuelven este problema. | |||
Los traits se utilizan para declarar métodos que se pueden utilizar en varias clases. Los traits pueden tener métodos y métodos abstractos que se pueden usar en varias clases, y los métodos pueden tener cualquier modificador de acceso (público, privado o protegido). | |||
Documentación oficial de traits: [https://www.php.net/manual/es/language.oop5.traits.php ES] | Documentación oficial de traits: [https://www.php.net/manual/es/language.oop5.traits.php ES] | ||
Documentación oficial de traits: [https://www.php.net/manual/en/language.oop5.traits.php EN] | Documentación oficial de traits: [https://www.php.net/manual/en/language.oop5.traits.php EN] | ||
= Sintaxis = | |||
<?php | |||
trait TraitName { | |||
// Algo de code... | |||
} | |||
Para utlizar el trait en una clase, se utiliza la palabra reservada '''use''' | |||
= Ejemplos = | = Ejemplos = |
Revisión del 06:16 22 ago 2022
General
PHP solo admite herencia simple. Una clase secundaria solo puede heredar de un solo padre.
¿Qué pasa si una clase necesita heredar múltiples comportamientos? Los traits de la Programación Orientada a Objetos resuelven este problema.
Los traits se utilizan para declarar métodos que se pueden utilizar en varias clases. Los traits pueden tener métodos y métodos abstractos que se pueden usar en varias clases, y los métodos pueden tener cualquier modificador de acceso (público, privado o protegido).
Documentación oficial de traits: ES
Documentación oficial de traits: EN
Sintaxis
<?php trait TraitName { // Algo de code... }
Para utlizar el trait en una clase, se utiliza la palabra reservada use
Ejemplos
Ejemplo 1
Un solo trait se usa.
<?php trait message { public function print() { echo "Proyectos Beta is fun!!!"; } } class Welcome { use message; } $object = new Welcome(); $object->print();
Ejemplo 2
Se utiliza múltiples traits.
<?php trait message1 { public function msg1() { echo "Proyectos Beta is fun!!!"; } } trait message2 { public function msg2() { echo "Proyectos Beta is the best!"; } } class Welcome { use message1; } class Welcome2 { use message1, message2; } $object = new Welcome(); $object->msg1(); echo "\n\n"; $object2 = new Welcome2(); $object2->msg1(); $object2->msg2();