Käyttöoikeusmuokkaajat ja traitit OOP:ssa PHP:ssä
On kiinnitettävä huomiota siihen, että traitien käyttö ei ole perintää. Perinnässä yksityiset menetelmät ja ominaisuudet eivät periyty.
Traiteissa kaikki on päinvastoin: traitia käyttävässä luokassa sekä julkiset että yksityiset menetelmät ja ominaisuudet ovat saatavilla.
Katsotaanpa esimerkkiä. Oletetaan, että meillä on seuraava trait yksityisellä menetelmällä:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Yhdistetään traitimme luokkaan:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Käytetään traitin yksityistä menetelmää:
<?php
class Test
{
use TestTrait; // yhdistetään trait
public function __construct()
{
echo $this->method(); // tulostaa '!!!'
}
}
new Test;
?>