Մուտքի փոփոխիչներ և տրեյթներ OOP-ում 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;
?>