我不知道beginChildren,endChildren函数在哪里调用

时间:2018-08-18 05:52:37

标签: php

我是一个新手,尝试学习PHP(以及一般的面向对象编程)。我尝试遵循线程,但是看不到函数current(),beginChildren()和endChildren()的调用位置。如果有人可以让我知道在哪里打电话,我要在此先多谢。同样重要的是,下次我该如何自行搜索?

class TableRows extends RecursiveIteratorIterator {
    function __construct($it) {
        parent::__construct($it, self::LEAVES_ONLY);
    }

    function current() {
        return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
    }

    function beginChildren() {
        echo "<tr>";
    }

    function endChildren() {
        echo "</tr>" . "\n";
    }

}

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "testDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll()))    as $k=>$v) {
        echo $v;
    }
}

2 个答案:

答案 0 :(得分:1)

回答“下一次如何自己搜索?”
我看到您的'TableRows'类是从'RecursiveIteratorIterator'扩展而来的,所以我用Google搜索'RecursiveIteratorIterator'

然后我找到了它的引用:PHP: RecursiveIteratorIterator - Manual
那里我找到了一些有关您的问题的有用信息

stackoverflow中的另一个有用链接:How does RecursiveIteratorIterator work in PHP?


祝你学习愉快

答案 1 :(得分:0)

在这种情况下,

beginChildren ”是一个在嵌套列表中起作用的函数,用于在这种情况下显示html元素。我指的是一个嵌套列表,因为代表表中列表的HTML元素以'tr'打开,以显示当前位于单元格'td'中的当前内容,然后以' endChildren 关闭>”及其相应的/ tr。它是对嵌套列表的补充。非常用在HTML中,它与标记作用很大。