Полный цикл в digital

Traits группы свойств и методов в PHP

Traits представляют группу свойств и методов, которые могут быть добавлены в классы. Traits позволяют определять блоки функционала и многократно повторно использовать в классах без необходимости усложнять код классов, которые используют эти методы.

Traits определяются с помощью ключевого словва trait, который идет название трейта:

trait Printer { 
}

Для применения в классе трейта, применяется оператор use, после которого указывается добавляемый трейт:

<?
// трейт
trait Printer
{
    // метод трейта
    public function printSimpleText($text)
    {
        echo "$text<br>";
    }
    // метод трейта
    public function printHeaderText($text)
    {
        echo "<h2>$text<h2>";
    }
}
// класс который наследует трейт Printer
class Message
{
    use Printer;
}
// объект класса
$myMessage = new Message();
$myMessage->printSimpleText("Hello World!");
$myMessage->printHeaderText("Hello PHP 8");

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

Следует учитывать, что при наследовании методы трейта переопределяют унаследованные методы с тем же именем:

<?
// класс
class Data
{
    // одинаковая функция в классе
    function print()
    {
        echo "Print from Data";
    }
}
// трейт
trait Printer
{
    // одинаковая функция в трейте
    function print()
    {
        echo "Print from Printer";
    }
}
// класс наследник от трейта Printer и класса Data
class Message extends Data
{
    use Printer;
}
// объект класса
$myMessage = new Message();
$myMessage->print();
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг