Endring av tilgangsnivåer for trait-metoder i OOP i PHP
Inne i en trait kan du bruke hvilket som helst tilgangsnivå
for metoder (det vil si public, private
eller protected). Ved behov kan imidlertid
denne tilgangsmodifikatoren endres til en annen
i selve klassen. For å gjøre dette, må du i kroppen av use etter
nøkkelordet as angi den nye
tilgangsmodifikatoren.
La oss se på et eksempel. Anta at vi har følgende trait med en privat metode:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
La oss koble trait-en vår til en klasse:
<?php
class Test
{
use TestTrait;
}
?>
La oss endre metoden til publik i klassen:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
La oss teste den publiske metoden utenfra klassen:
<?php
$test = new Test;
echo $test->method(); // vil skrive ut '!!!'
?>