Ändring av åtkomsträttigheter för trait-metoder i OOP i PHP

Inuti ett trait kan du använda vilken åtkomstmodifierare som helst för metoder (det vill säga public, private eller protected). Vid behov kan dock denna modifierare ändras till en annan i själva klassen. För att göra detta, efter nyckelordet as i use-kroppen behöver du ange den nya åtkomstmodifieraren.

Låt oss titta på ett exempel. Anta att vi har följande trait med en privat metod:

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

Låt oss ansluta vårt trait till klassen:

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

Låt oss ändra metoden till publik i klassen:

php<?php
  class Test
  {
    use TestTrait {
      TestTrait::method as public;
    }
  }
?>

Låt oss kontrollera den publika metodens funktionalitet utifrån klassen:

php<?php
  $test = new Test;
  echo $test->method(); // skriver ut '!!!'
?>