ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗ppOpTrARC 81 of 107 menu
Бесплатный курс по выкладке сайтов на хостинг. Разбираем все нюансы! Начало 14 октября. Жми для записи!

Изменения прав доступа к методам трейта в ООП в PHP

Внутри трейта можно использовать любой модификатор доступа для методов (то есть public, private или protected). При необходимости, однако, в самом классе можно этот модификатор поменять на другой. Для этого в теле use после ключевого слова as нужно указать новый модификатор.

Посмотрим на примере. Пусть у нас есть следующий трейт с приватным методом:

<?php trait TestTrait { private function method() { return '!!!'; } } ?>

Подключим наш трейт к классу:

<?php class Test { use TestTrait; } ?>

Поменяем в классе метод на публичный:

<?php class Test { use TestTrait { TestTrait::method as public; } } ?>

Проверим работу публичного метода снаружи класса:

<?php $test = new Test; echo $test->method(); // выведет '!!!' ?>
byenru