我使用PDOStatement
对象将查询结果提取到NewOrder
类类型的对象中。
$result = $pdo->query($strsql);
$result->setFetchMode(PDO::FETCH_CLASS, 'NewOrder');
$order = $result->fetch()
NewOrder
是一个有孩子的基类。我总是需要实例化一个子而不是这个基类NewOrder
(它可能是一个抽象类,但然后提取不起作用)。但是,可以根据order_type
的{{1}}字段中的值来确定要实例化的子项。获取result
后,我可以访问此值:
result
获得此值后,是否可以将$orderType = $order->getOrderType();
对象的类型从$order
更改为其子项之一(取决于值NewOrder
)?我想这样做的原因是因为我想避免创建一个新对象并将$orderType
类型的对象$order
的所有属性重新分配给NewOrder
的对象$order2
} type。
答案 0 :(得分:0)
您不能在PHP中对对象进行类型转换。请参阅Type casting for user defined objects的答案。
也许您想看一下Doctrine 2 ORM支持此类映射的Single Table Inheritance。