Курсы по Laravel
Менторство: 200$ за курс. Репетиторство: 20$ за занятие. Жми для подробностей!
⊗ppOpTrMT 78 of 107 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Несколько трейтов в ООП в PHP

В классе можно использовать не один, а несколько трейтов. В этом и проявляется их преимущество перед наследованием. Нужные для использования в классе трейты можно указать через запятую после ключевого слова use.

Давайте посмотрим на примере. Пусть у нас есть два трейта. Первый:

<?php trait Helper1 { private $name; public function getName() { return $this->name; } } ?>

Второй:

<?php trait Helper2 { private $age; public function getAge() { return $this->age; } } ?>

Используем наши трейты в классе:

<?php class User { use Helper1, Helper2; // подключаем трейты public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

Сделайте 3 трейта с названиями Trait1, Trait2 и Trait3. Пусть в первом трейте будет метод method1, возвращающий 1, во втором трейте - метод method2, возвращающий 2, а в третьем трейте - метод method3, возвращающий 3. Пусть все эти методы будут приватными.

Сделайте класс Test, использующий все три созданных нами трейта. Сделайте в этом классе публичный метод getSum, возвращающий сумму результатов методов подключенных трейтов.

azbydeenesfrkakkptruuz