EDIT:
предыдущий ответ больше не действителен, поскольку PHP теперь ведет себя как другие языки программирования.
конструкторы не являются частью интерфейсов. поэтому теперь вы можете переопределить их так, как вам нравится, без каких-либо проблем
единственное исключение из этого:
interface iTest
{
function __construct(A $a, B $b, Array $c);
}
class Test implements iTest
{
function __construct(A $a, B $b, Array $c){}
// in this case the constructor must be compatible with the one specified in the interface
// this is something that php allows but that should never be used
// in fact as i stated earlier, constructors must not be part of interfaces
}
ПРЕДЫДУЩАЯ СТАРАЯ, НЕ ДЕЙСТВИТЕЛЬНАЯ-ЛЮБОЙ ОТВЕТ:
есть важное различие между пустым конструктором и вообще без конструктора
class A{}
class B extends A{
function __construct(ArrayObject $a, DOMDocument $b){}
}
VS
class A{
function __construct(){}
}
class B extends A{
function __construct(ArrayObject $a, DOMDocument $b){}
}
// error B::__construct should be compatible with A constructor