title: PHP: What does this error mean? Abstract method must be compatible?
body: <p>I have an abstract class. I'm extending that class. I'm getting this error:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>What does this usually mean?</p>
  
  <p><strong>Update:</strong> Found out that my type hinting was throwing an error. You can't do this:</p>
  
  <pre><code>abstract class MyAbstractClass
  {
      abstract protected function _myFunction($array, $generic_class);
  }
  
  class Foobar extends MyAbstractClass
  {
      protected function _myFunction($array, Specific_Class $specific_class)
      {
          //etc.
      }
  }
  </code></pre>