Ä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
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Låt oss ansluta vårt trait till klassen:
<?php
class Test
{
use TestTrait;
}
?>
Låt oss ändra metoden till publik i klassen:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Låt oss kontrollera den publika metodens funktionalitet utifrån klassen:
<?php
$test = new Test;
echo $test->method(); // skriver ut '!!!'
?>