PHP-də OOP-də Giriş Modifikatorları və Treytlər
Diqqətinizi çəkmək istəyirik ki, treytlərin istifadəsi irs deyil. İrs zamanı private metodlar və xassələr miras alınmır.
Treytlərdə isə hər şey əksinədir: treyti istifadə edən klasda həm public, həm də private metodlar və xassələr əlçatan olacaq.
Nümunə üzərində baxaq. Tutaq ki, bizim private metodu olan aşağıdakı treytimiz var:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Gəlin treytimizi klasa qoşaq:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Treytin private metodundan istifadə edək:
<?php
class Test
{
use TestTrait; // treyti qoşuruq
public function __construct()
{
echo $this->method(); // '!!!' çap edəcək
}
}
new Test;
?>