我试图将变量从一个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;
}
}
变量需要放在$idOfComment
给getAll()
方法的参数中。我现在这样称呼它,直到我弄清楚如何通过它:
$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();
}
}
}