Как я могу вызвать нестатическую функцию из абстрактного класса в PHP 8?Php

Кемеровские программисты php общаются здесь
Anonymous
Как я могу вызвать нестатическую функцию из абстрактного класса в PHP 8?

Сообщение Anonymous »


Я хочу обновить наш текущий проект, работающий на PHP 7.2, но у меня возникла проблема, которую не могу легко решить.

публичная функция getCategories($type){...} //В другом файле, который реализует категорию $categories = Категория::getCategories('xxx'); У меня проблема в том, что в PHP 8 вы больше не можете статически вызывать нестатические функции, но я также не могу переписать ее в $categories = (new Category)->getCategories('xxx') ; потому что это абстрактный класс.

В качестве временного решения я рассмотрел преобразование getCategories в статический метод. Однако меня беспокоят возможные побочные эффекты, которые это изменение может иметь для проекта.

Есть ли у кого-нибудь предложения по решению этой ситуации в PHP 8? В идеале я ищу решение, которое позволяет избежать изменения статического/нестатического статуса метода, но при этом соответствует более строгим стандартам PHP 8.

Вернуться в «Php»