PHP da OOP da Bir Nechta Treytlar
Klassda bitta emas, bir nechta
treytlardan foydalanish mumkin. Shu bilan ularning meros olishdan
afzalliklari namoyon bo'ladi. Klassda foydalanish uchun kerakli
treytlarni vergul bilan ajratib, use kalit so'zidan keyin ko'rsatish mumkin.
Keling, buni misol bilan ko'ramiz. Faraz qilaylik, bizda ikkita treyt mavjud. Birinchi:
<?php
trait Helper1
{
private $name;
public function getName()
{
return $this->name;
}
}
?>
Ikkinchi:
<?php
trait Helper2
{
private $age;
public function getAge()
{
return $this->age;
}
}
?>
Keling, treytlarimizni klassda ishlatamiz:
<?php
class User
{
use Helper1, Helper2; // treytlarni ulaymiz
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
Trait1,
Trait2 va Trait3 nomli 3 ta treyt yarating. Birinchi
treytda 1 ni qaytaradigan method1 metodi,
ikkinchi treytda - 2 ni qaytaradigan method2 metodi,
uchinchi treytda esa - 3 ni qaytaradigan method3 metodi bo'lsin.
Bu metodlarning hammasi shaxsiy (private) bo'lsin.
Yaratgan uchala treytimizdan ham foydalanadigan Test klassini yarating. Ushbu
klassda getSum nomli ochiq metod yarating, bu metod ulangan
treytlarning metodlari natijalari yig'indisini qaytarsin.