【发布时间】:2020-07-29 19:58:04
【问题描述】:
我正在尝试覆盖我的构造函数,以根据我的数据库中的一行创建一个对象,但我不确定最好的方法。我的目标是能够在给定构造函数的情况下创建对象,但也能够从数据库中的一行创建对象。
这是我给定场景的伪代码:
class PurchaseOrder
{
private $id;
private $title;
private $amount;
function __construct($title, $amount)
{
$this->title = $title;
$this->amount = $amount;
}
function constructFromDB($pdo, $id)
{
$poValues = queryPO($pdo, $id); // fetches from db (psuedocode);
$this->title = $poValues->title;
$this->amount = $poValues->amount;
}
}
// Create new purchase order
$po = new PurchaseOrder("Purchase Order 1", 100);
// Query purchase order from database
$queriedPO = new PurchaseOrder()->constructFromDB($conn, 1);
但如您所知,我不能将构造函数留空以初始化我的对象。我不能让它成为一个静态函数,因为我需要能够操纵对象的属性。
【问题讨论】: