У меня есть интерфейс:PHP - Интерфейс наследования - декларация должна быть совместима
interface AbstractMapper
{
public function objectToArray(ActiveRecordBase $object);
}
И классы:
class ActiveRecordBase
{
...
}
class Product extends ActiveRecordBase
{
...
}
========
Но я не могу» t сделать это:
interface ExactMapper implements AbstractMapper
{
public function objectToArray(Product $object);
}
или это:
interface ExactMapper extends AbstractMapper
{
public function objectToArray(Product $object);
}
я получил ошибку «декларация должна быть совместима»
Итак, есть ли способ сделать это в PHP?
Я знаю, это был вывешен несколько лет тому назад, но вот мои два cents- сообщения Этой ошибки не делать с наследованием интерфейсов. Эта ошибка объясняется тем, что PHP не поддерживает истинную перегрузку функции/метода, как на других языках (например, Java, C++), к которым вы, вероятно, привыкли. – anotheruser1488182