簡體   English   中英

php在類中使用關聯數組來構造HTML

[英]php use associative array in class to construct HTML

我想在一個類中使用關聯數組(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_CLASSPDO::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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM