PDO::FETCH_CLASS
允許使用預填充數據初始化類實例。它看起來是這樣的:在構造函數被調用之前,PDO :: FETCH_CLASS如何填充對象屬性?
<?php
class Bar {
private $data = [];
public function __construct ($is) {
// $is === 'test'
// $this->data === ['foo' => 1, 'bar' => 1]
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
}
$db
->query("SELECT `foo`, `bar` FROM `qux`;")
->fetchAll(PDO::FETCH_CLASS, 'Bar', ['test']);
另外,可以使用PDO::FETCH_PROPS_LATE
來調用構造函數被觸發setter方法之前。
我很想知道PDO如何在調用構造函數之前通過setter填充Class實例,或者更具體地說,如果有一種方法可以複製此行爲?