【发布时间】:2018-04-23 19:38:10
【问题描述】:
是否可以在 PHP7.1 类型提示中以某种方式缩小返回类型?
以下代码会导致致命错误Declaration of A::foo(): Obj must be compatible with IA::foo(): IObj,即使通过缩小返回类型也不会破坏继承类型原则:Obj 实现了 IObj,因此在返回 Obj 实例时将始终满足父类返回类型约束。
interface IObj {}
class Obj implements IObj {}
interface IA {
function foo(): IObj;
}
class A implements IA {
function foo(): Obj {
return new Obj();
}
}
是我做错了什么,还是 PHP 的缺点?
【问题讨论】:
标签: php type-hinting php-7.1