PHP OOPda Treyt metodlariga kirish huquqini o'zgartirish
Treyt ichida metodlar uchun har qanday kirish
modifikatoridan foydalanish mumkin (ya'ni public, private
yoki protected). Agar kerak bo'lsa, biroq,
sinfning o'zida ushbu modifikatorni boshqasiga
o'zgartirish mumkin. Buning uchun use tanasida
as kalit so'zidan keyin yangi
modifikatorni ko'rsatish kerak.
Keling, misol orqali ko'rib chiqaylik. Bizda shunday treyt bo'lsin privat metod bilan:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Keling, treytimizni sinfga ulaymiz:
<?php
class Test
{
use TestTrait;
}
?>
Keling, sinfda metodni public qilib o'zgartiramiz:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Keling, public metodning ishlashini sinf tashqarisida tekshiramiz:
<?php
$test = new Test;
echo $test->method(); // '!!!' chiqadi
?>