php – 将对象转换为其子类之一(协变返回类型)的正确OO方法是什么?

前端之家收集整理的这篇文章主要介绍了php – 将对象转换为其子类之一(协变返回类型)的正确OO方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个子类,需要返回其父类的返回类型的子类.我相信这被称为协变返回类型.我想知道从父类转换为子类的最简单方法.
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.但那不是很流利.

猜你在找的PHP相关文章