PHP: Что означает эта ошибка? Абстрактный метод должен быть совместимым?

У меня есть абстрактный класс. Я расширяю этот класс. Я получаю эту ошибку:

Fatal error: Declaration of Default_Model_FoobarMapper::_setClassVarsFromRow() must be compatible with that of Default_Model_AbstractMapper::_setClassVarsFromRow() in /location/to/models/FoobarMapper.php on line 3

Что это обычно означает?

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

abstract class MyAbstractClass
{
    abstract protected function _myFunction($array, $generic_class);
}

class Foobar extends MyAbstractClass
{
    protected function _myFunction($array, Specific_Class $specific_class)
    {
        //etc.
    }
}

Ответы

Ответ 1

Аргументы, которые вы заявляете для _setClassVarsFromRow(), должны быть идентичны аргументам в тезисе.

Например, если ваш тезис говорит

function _setClassVarsFromRow($arg1, $arg2 = null)

вы не можете реализовать

function _setClassVarsFromRow($arg1, $arg2, $arg3 = null)