Дастрасӣ модификаторҳо ва хусусиятҳо дар ООП дар 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;
?>