PHP да ООП да модификаторлар ва трейтлар
Сизларнинг диққатингизга трейтларни ишлатиш мерос олиш эмаслигини такдим қиламиз. Мерос олишда хусусий методлар ва хусусиятлар мерос олинмайди.
Трейтларда эса барчаси тескари: трейтни ишлатаётган синфда оммавий методлар ва хусусиятлар хам, хусусий методлар ва хусусиятлар хам дастурда мумкин бўлади.
Келгила, мисолда кўрамиз. Бизда куйидаги хусусий методли трейт бор дейлик:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Трейтимизни синфга улантирамиз:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Трейтнинг хусусий методини ишлатамиз:
<?php
class Test
{
use TestTrait; // трейтни улантирамиз
public function __construct()
{
echo $this->method(); // '!!!' чиқади
}
}
new Test;
?>