我有一个子类需要返回其父类的返回类型的子类.我相信这被称为协变返回类型.我想知道从父类转换为子类的最简单方法.
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 ?
}
}
Run Code Online (Sandbox Code Playgroud)
在PHP中,您无法使用该语言中提供的功能将对象从类型/类A"转换"为B.
但是,如果对象支持序列化,则可以使用序列化(通常普通的旧PHP对象支持序列化).在serailized形式中,您可以更改对象的类并再次对其进行反序列化.A然后变成了B. 但那不是很流利.
归档时间: |
|
查看次数: |
4872 次 |
最近记录: |