Я думаю, что гораздо проще увидеть проблему в примере кода, чем писать вопрос в первую очередь. Вот мой PHP код:Подсказка типа Php не ладит с интерфейсами и абстрактными классами?
<?php
interface AnInterface
{
public function method();
}
class AClass implements AnInterface
{
public function method()
{
echo __METHOD__;
}
}
abstract class AnAbstractClass
{
abstract public function method(AnInterface $Object);
}
class ConcreteClass extends AnAbstractClass
{
public function method(AClass $Object)
{
$Object->method();
}
}
$Object1 = new ConcreteClass();
$Object2 = new AClass();
$Object1->method($Object2);
Приведенный выше код вызывает следующую ошибку:
Fatal error: Declaration of ConcreteClass::method() must be compatible with that of AnAbstractClass::method()
Проблема заключается в том, что, кажется, не PHP, признают подписи AnAbstractClass :: метода и ConcreteClass: : метод совместим. Я делаю что-то неправильно? Благодаря!
Пожалуйста, * пожалуйста * ознакомьтесь с сообщением об ошибке, которое генерирует ваш код. Проводка кода без публикации вывода (или ошибки) бесполезна. – meagar