Меню
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON PHP КАК
     ❯   

PHP Учебник


PHP Формы


PHP Продвинутый


PHP ООП


MySQL База данных


PHP XML


PHP - AJAX


PHP Примеры


PHP Справочник



PHP ООП - Трейты



PHP - Что такое трейты?

Трейты используются для объявления методов, которые могут использоваться в нескольких классах. Трейты могут иметь методы и абстрактные методы, которые могут использоваться в нескольких классах, и методы могут иметь любой модификатор доступа (public, private или protected).

Трейты позволяют свободно использовать несколько методов в разных классах и являются механизмом повторного использования кода.


Определение трейта

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

trait ИмяТрейта {
  // некоторый код...
}

Использование трейта

Чтобы использовать трейт в классе, используйте ключевое слово use, за которым следует имя трейта:

class МойКласс {
  use ИмяТрейта;
}

В следующем примере мы определяем трейт: message1. Затем мы создаем класс: Welcome. Этот класс использует трейт, и все методы трейта будут доступны в классе:

Пример

<?php
// Определяем трейт
trait message1 {
  public function msg1() {
    echo "PHP ООП это весело! ";
  }
}

// Используем трейт в классе
class Welcome {
  use message1;
}

$obj = new Welcome();
$obj->msg1();
?>
Попробуйте сами »

Совет: Если другим классам нужно использовать функцию msg1(), просто используйте трейт message1 в этих классах. Это уменьшает дублирование кода, потому что нет необходимости объявлять один и тот же метод снова и снова.



PHP - Два класса и один трейт

В следующем примере мы определяем один трейт: message1. Этот трейт содержит три публичных метода. Затем мы создаем два класса: Welcome и Welcome2. Классы Welcome и Welcome2 используют трейт, и все методы трейта будут доступны в обоих классах. Однако класс Welcome использует только один из методов трейта, в то время как Welcome2 использует все три метода трейта:

Пример

<?php
trait message1 {
  public function msg1() {
    echo "PHP ООП это весело! ";
  }
  public function msg2() {
    echo "Трейты уменьшают дублирование кода! ";
  }
  public function msg3() {
    echo "Привет мир!";
  }
}

class Welcome {
  use message1;
}

class Welcome2 {
  use message1;
}

$obj = new Welcome();
$obj->msg1();
echo "<br>";

$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
$obj2->msg3();
?>
Попробуйте сами »

PHP - Использование нескольких трейтов

В следующем примере мы определяем два трейта: message1 и message2. Затем мы создаем два класса: Welcome и Welcome2. Первый класс (Welcome) использует трейт message1, а второй класс (Welcome2) использует оба трейта message1 и message2 (несколько трейтов разделяются запятыми):

Пример

<?php
trait message1 {
  public function msg1() {
    echo "PHP ООП это весело! ";
  }
}

trait message2 {
  public function msg2() {
    echo "Трейты уменьшают дублирование кода!";
  }
}

class Welcome {
  use message1;
}

class Welcome2 {
  use message1, message2;
}

$obj = new Welcome();
$obj->msg1();
echo "<br>";

$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>
Попробуйте сами »


×

Связаться с отделом продаж

Если вы хотите использовать услуги schoolsw3 как образовательное учреждение, команда или предприятие, отправьте нам электронное письмо:
sales@schoolsw3.com

Сообщить об ошибке

Если вы хотите сообщить об ошибке или внести предложение, отправьте нам электронное письмо:
help@schoolsw3.com

Schoolsw3 оптимизирован для обучения и подготовки. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно проверяются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего контента.
При использовании Schoolsw3 вы соглашаетесь прочитать и принять наши условия использования,
политику использования файлов cookie и конфиденциальности.

Авторское право 1999- © Copyright. Все права защищены. Schoolsw3 работает на SW3.CSS.