Pengubah Akses dan Trait dalam OOP di PHP
Perlu diperhatikan bahwa penggunaan trait - ini bukanlah pewarisan. Dalam pewarisan, metode dan properti privat tidak diwariskan.
Dalam trait, semuanya justru sebaliknya: dalam kelas yang menggunakan trait, baik metode dan properti publik maupun privat dari trait akan dapat diakses.
Mari kita lihat contohnya. Misalkan kita memiliki trait berikut dengan metode privat:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Mari hubungkan trait kita ke kelas:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Gunakan metode privat dari trait:
<?php
class Test
{
use TestTrait; // menghubungkan trait
public function __construct()
{
echo $this->method(); // akan menampilkan '!!!'
}
}
new Test;
?>