PHP da OOP da Kirish Modifikatorlari va Treytlar
E'tiboringizni shunga qaratish kerakki, treytlardan foydalanish - bu meros emas. Merosda private usullar va xususiyatlar meros qolinmaydi.
Treytlarda esa hammasi teskarisi: treytdan foydalanadigan klassda ham public, ham private usullar va xususiyatlar mavjud bo'ladi.
Keling, misol orqali ko'rib chiqaylik. Bizda quyidagi private usuli bo'lgan treyt bor deylik:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Keling, treytimizni klassga ulaymiz:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Treytning private usulidan foydalanamiz:
<?php
class Test
{
use TestTrait; // treytni ulaymiz
public function __construct()
{
echo $this->method(); // '!!!' chiqaradi
}
}
new Test;
?>