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;
?>