Трейты
28 марта 2018Трейты были добавлены в PHP 5.4. Трейты - это классы с частичной реализацией необходимого функционала, при этом невозможно создать самостоятельный экземпляр трейта.
class Cat
{
public function meow() {
echo 'Meow...';
}
}
trait SayMurr {
public function meow() {
parent::meow();
echo 'Murr!';
}
}
class BlackCat extends Cat
{
use SayMurr;
}
$cat = new BlackCat();
$cat->meow();
Результат выполнения кода:
Meow...Murr!
Приоритет наследования
1) Методы в трейте переопределяют унаследованные методы класса.
2) Методы из класса переопределяют методы из трейта.
Несколько трейтов
Несколько трейтов могут быть вставлены в класс путем их перечисления в директиве use, разделяя запятыми.