⊗ppOpTrARC 81 of 107 menu

Æ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 '!!!' ?>
hyrokkfrid