我想在类中使用一个关联数组(PDO查询的结果),这样我就可以用一些数据库内容构建一个div
如何在类中获取数组?在while循环中,我想创建一个对象,在该对象的Class中,我要构造HTML。
while($data = $stmt->fetch( PDO::FETCH_ASSOC )){
$html = new class;
echo $html;
}
如果希望while循环能够像编写它一样工作,可以编写类的构造函数,使其接受数据作为参数,然后在__toString
方法中实现div输出。
class HtmlDivFormatter {
private $data;
public function __construct($data) {
$this->data = $data;
}
public function __toString() {
return '<div>' . $this->data['column_name'] . '</div>';
// whatever HTML you have in mind
}
}
while ($data = $stmt->fetch( PDO::FETCH_ASSOC )) {
$html = new HtmlDivFormatter($data);
echo $html;
}
参见PDO::FETCH_CLASS
或PDO::FETCH_INTO
此处提供更多信息http://php.net/manual/en/pdostatement.fetch.php这个PHP PDO获取对象
以及一些示例代码:
<?php
$sql = 'SELECT firstName, lastName FROM users';
$stmtA = $pdo->query($sql);
$stmtA->setFetchMode(PDO::FETCH_CLASS, 'Person');
$objA = $stmtA->fetch();
var_dump($objA);
//first create the object we will fetch into
$objC = new Person;
$objC->firstName = "firstName";
$objC->lastName = "lastName";
$stmtC = $pdo->query($sql);
$stmtC->setFetchMode(PDO::FETCH_INTO, $objC);
$objC = $stmtC->fetch(); // here objC will be updated
var_dump($objC);
class Person{
public $firstName;
public $lastName;
}