Ændringer i adgangsrettigheder til trait-metoder i OOP i PHP
I et trait kan du bruge enhver adgangsmodifikator
for metoder (det vil sige public, private
eller protected). Om nødvendigt kan
denne modifikator dog ændres til en anden
i selve klassen. For at gøre dette skal du i kroppen af use efter
nøgleordet as angive den nye
modifikator.
Lad os se på et eksempel. Antag, at vi har følgende trait med en privat metode:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Lad os forbinde vores trait til klassen:
<?php
class Test
{
use TestTrait;
}
?>
Lad os ændre metoden til offentlig i klassen:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Lad os teste den offentlige metode udefra klassen:
<?php
$test = new Test;
echo $test->method(); // vil udskrive '!!!'
?>