0

我试图将变量从一个while循环传递到另一个类的另一个方法中。我是 OOP 的新手,所以我不确定如何做到这一点,我已经在谷歌上搜索了一段时间,但没有运气。我的代码如下:

class ImageRenderer extends CommentReplyRenderer {

    function __construct() {
        $comments = new ImageIterator();
        $test = $comments->getAll();
        while($id = $test->fetch(PDO::FETCH_ASSOC)){
            echo $id['photo_id'];
        }
    }
}

上面的类有我需要传递$id['photo_id']给下面的方法的变量。

class CommentIterator extends CommentReplyIterator
{
    public $conn;
    public $idOfComment;
    public $stmt;

    public function getAll($idOfComment)
    {   
        $this->stmt = $this->conn->prepare('SELECT * FROM `comments` WHERE `photo_id` = :picture_id');
        $this->stmt->bindValue(':picture_id', $idOfComment);
        $this->stmt->execute();

        return $this->stmt;

    }
}

变量需要放在$idOfCommentgetAll()方法的参数中。我现在这样称呼它,直到我弄清楚如何通过它:

$comment1 = new CommentIterator();
$testing = $comment1->getAll($id['photo_id']);
while($boom = $testing->fetch(PDO::FETCH_ASSOC)){
    echo $boom['comment'];
}

您可以看到我试图将它放在行内,$testing = $comment->getAll($id['photo_id']);但我得到一个未定义的变量错误。

我正在扩展的类CommentReplyRenderer中没有任何内容

class CommentReplyIterator
{
    public $conn;

    public function __construct()
    {
        try{
            $this->conn = new PDO('mysql:host=localhost;dbname=testing', 'test','BOOMSHAKALAKA');
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch(PDOException $e){
            echo'ERROR: ' . $e->getMessage();
        }
    }

}
4

0 回答 0