У меня есть следующая иерархия классов:
class O_Base {...}
class O extends O_Base {...}
abstract class A_Abstract {
public function save(O_Base $obj) {...}
}
class A extends A_Abstract {
public function save(O $obj) {
echo 'save!';
}
}
$o = new O;
$a = new A;
$a->save($o);
Когда я запускаю этот код, я получаю сообщение:
Строгие стандарты: декларация A:: save() должна быть совместима с A_Abstract:: save (O_Base $obj) в .php в строке 21
Я знаю об уровне E_STRICT, но я не могу найти (и понять) причину такого поведения. Кто-нибудь может мне помочь?