我可能错过了一些明显的东西,因为这是其他OOP语言的基本功能,但我正在努力与PHP的方式做到这一点。我明白,PHP是不是“真正的”OOP语言,但仍然...在派生类派生类到基类在PHP
我后来把一个对象实例化为派生类到基类。沿着线的东西:
class Some{}
class SomeMock extends Some {}
function GetSomeMock(){
$mock = new SomeMock();
return (Some)$mock; //Syntax error here
}
我发现有向下转换的基类对象派生这可能与一些讨厌的扭动奇怪的要求的一些问题,但这些基本功能并不一定是困难的。我在这里错过了什么?
编辑:它似乎总是重要的,我试图实现。没问题。 GetSomeMock()是一个工厂方法,它将返回一个模拟对象存根(派生自基类,构造函数中预填充的所有属性)和预期属性的值。然后我会比较它的基本类型的另一个目的是从数据库恢复:
$this->assertEquals($mockObject, $realObject);
这瞬间失败为$ mockObject和$ realObject是不同类型的。我可以想象有很多解决方法可以实现,但我希望尽可能简单。
你想达到什么目的?由于静态类型检查,这在某些语言中是必需的,但PHP使用动态类型。 – Barmar 2013-05-09 21:07:03
_我明白PHP不是“真正的”OOP language_这是不准确的,特别是从5.3版本开始。 – 2013-05-09 21:07:06