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<?php
  trait TestTrait
  {
    private function method()
    {
      return '!!!';
    }
  }
?>

Mari hubungkan trait kita ke kelas:

php<?php
  class Test
  {
    use TestTrait;
  }
  
  new Test;
?>

Gunakan metode privat dari trait:

php<?php
  class Test
  {
    use TestTrait; // menghubungkan trait
    
    public function __construct()
    {
      echo $this->method(); // akan menampilkan '!!!'
    }
  }
  
  new Test;
?>