Мадыфікатары доступу і трэйты ў ААП у 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;
?>