Wijzigingen in toegangsrechten tot trait methoden in OOP in PHP
Binnen een trait kan elke toegangsmodifier
voor methoden worden gebruikt (dus public, private
of protected). Indien nodig kan echter
in de klasse zelf deze modifier worden gewijzigd
in een andere. Hiervoor moet in de body van use na
het sleutelwoord as de nieuwe
modifier worden gespecificeerd.
Laten we een voorbeeld bekijken. Stel we hebben de volgende trait met een privémethode:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Laten we onze trait verbinden met een klasse:
<?php
class Test
{
use TestTrait;
}
?>
Laten we de methode in de klasse wijzigen naar public:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Laten we de werking van de publieke methode testen van buiten de klasse:
<?php
$test = new Test;
echo $test->method(); // geeft '!!!' weer
?>