PHP: Bu hata ne demek?

1 Cevap

Ben soyut bir sınıf var. Ben o sınıfın uzatıyorum. Ben bu hatayı alıyorum:

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

Bu genellikle ne demek?

Update: benim tipim avcılığı bir hata atma olduğunu öğrendim. Bunu yapamazsınız:

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

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

1 Cevap

Sizin için beyan argümanlar _setClassVarsFromRow() soyut olanlara aynı olmalıdır.

Örneğin, soyut diyorsa

function _setClassVarsFromRow($arg1, $arg2 = null)

Eğer uygulayamaz

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