Declaration compatibility

Ярослав

Новичок
Declaration compatibility

Здравствуте.
Возникла проблема с совместимостью описание хитинга.
Сразу даю примеры так наверное лучше всего обяснить.

PHP:
<?php

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

class a
{}

class b extends a
{}


class c
{
    public function cc(a $a)
    {}
}

class d extends c
{
    public function cc(b $b) {}
    
    public function dd() {}
}
Возникает ошибка:
<b>Strict Standards</b>: Declaration of d::cc() should be compatible with that of c::cc() in .. on line 26.
(Ошибка возникает только в случае загрузки файла через инклуд. Тоисть если зайти с браузера на файл все ок, ошибки нет, а если инклудить в другой тогда есть ошибка. Это скорее бага php, но найти не удалось.)

Хочет совместимости с методом сс класса "с", тоисть ждет интерфейс "а", а я ему леплю "b"
Но если клас "b" есть парентом класа "а" то почему подходит? Методы же из класса "а" присутствуют в классе "b".
 
Сверху