@mxdmg

Php trait переопределение магических методов?

Собственно суть вопроса в заголовке.
Можно ли и как переопределить магические методы __construct __destruct в классе с помощью трейта ?
к примеру что-бы при кончине класса сначала вызывался метод класса, затем метод из трейта.
В мануале искал не нашёл.
Спасибо.
  • Вопрос задан
  • 1007 просмотров
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
А что там искать-то в мануале?

Быстрее написать код и проверить.

Магические метод из трейтов использовать можно.
Вызываться они будут если в классе не будет своих магических методов указанных.

Сначала вызываются методы класса, так что переопределить без изменения класса не получится. Т.е. в методах класса надо руками вызывать метод из трейта.

В мануале искал не нашёл.

в гугле прямо вот сразу куча всего нашлось почему-то.
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
При использовании трейта вы можете переназначить имя метода: php.net/manual/ru/language.oop5.traits.php#languag...

Таким образом, вы можете подключить метод __construct под иным названием и вызвать его в конце конструктора класса. Аналогично и с любыми другими методами. Ничего автоматически PHP в этом плане не делает, все конфликты должны быть разрешены явным образом, иначе приведут к ошибке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект