I\'m trying to specify two interfaces for class A that returns instances of class B, and for class B itself.
I\'m declaring return types on the interface.
Sa
Happy to answer my own question after a year or so:
This will be possible in PHP 7.4
This will be possible:
interface X { function m(Y $z): X; } interface Y extends X { // not permitted but type-safe function m(X $z): Y; }
Check out this RFC.