PHP'de OOP'de Erişim Değiştiriciler ve Traits
Dikkatinizi şu noktaya çekmek isteriz ki, trait'lerin kullanımı kalıtım değildir. Kalıtımda private metotlar ve özellikler kalıtımla alınmaz.
Trait'lerde ise durum tam tersidir: trait'i kullanan sınıfta, hem public hem de private metotlar ve özellikler kullanılabilir olacaktır.
Bir örnek üzerinden inceleyelim. Private bir metoda sahip şu trait'imiz olsun:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Trait'imizi bir sınıfa bağlayalım:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Trait'in private metodunu kullanalım:
<?php
class Test
{
use TestTrait; // trait'i bağlıyoruz
public function __construct()
{
echo $this->method(); // '!!!' yazdıracak
}
}
new Test;
?>