我有一个子类,需要返回其
父类的返回类型的子类.我相信这被称为协变返回类型.我想知道从
父类转换为子类的最简单
方法.
class A {
}
class B extends A {
function bar() {
}
}
class Car {
function foo() {
return new A();
}
}
class BrokenCar extends Car {
function foo() {
$a = parent::foo();
//What is the cleanest way to convert $a to type B ?
}
}
在
PHP中,您无法使用该语言中提供的
功能将对象从类型/类A“转换”为B.
但是,如果对象支持序列化,则可以使用序列化(通常普通的旧PHP对象支持序列化).在serailized形式中,您可以更改对象的类并再次反序列化它. A然后变成了B.但那不是很流利.