Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗ppOpTrMT 78 of 107 menu

Некалькі трэйтаў у Аб'ектна-Арыентаваным Праграмаванні ў 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, які вяртае суму вынікаў метадаў падключаных трэйтаў.

byenru