Pengubah Suai Akses dan Trait dalam OOP dalam PHP

Perhatian anda harus diberikan kepada fakta bahawa penggunaan trait - bukannya pewarisan. Dalam pewarisan, kaedah dan sifat persendirian tidak diwarisi.

Dalam trait, keadaan adalah sebaliknya: dalam kelas yang menggunakan trait, kedua-dua kaedah dan sifat awam dan persendirian akan boleh diakses.

Mari kita lihat contoh. Katakan kita mempunyai trait berikut dengan kaedah persendirian:

php<?php
  trait TestTrait
  {
    private function method()
    {
      return '!!!';
    }
  }
?>

Sambungkan trait kami ke kelas:

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

Gunakan kaedah persendirian trait:

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