我来自Java,只是继续学习PHP。所以,我试图遵循一些类似的模式,我在Java中使用它来从数据库中获取值。
我只有一个问题,我不知道如何解决。我无法找到正确存储对象(使用set()
方法设置其值/属性)到 Array
的方法ArrayList
。我认为PHP没有ArrayList
或List
或HashMaps
但无论如何,我基本上想知道正确的习惯用法,语法或方法来存储我通过关键字new
实例化的对象到普通类型的PHP集合,我可以通过使用{{{ 1}}方法。
get()
所以我尝试从中检索数据,但收到错误声明有
警告:为foreach()提供的参数无效
function getAllAnnouncementByMostRecent()
{
try{
$SQL = "CALL getAllAnnouncementByMostRecent()";
$spGetAnnouncements = $this->connection->prepare($SQL);
$spGetAnnouncements->execute();
$resultSet = $spGetAnnouncements->fetchAll(PDO::FETCH_ASSOC);
$announcementList = [];
foreach($resultSet as $row){
$announcement = new Announcement();
$announcement->setId($row['announcement_id']);
$announcement->setTitle($row['announcement_title']);
$announcement->setContent($row['announcement_content']);
$announcement->setDateAdded($row['date_added']);
$announcementList[] = $announcement;
}
return $announcementList;
}catch (PDOException $e){
die($e->getMessage());
}
}
我尝试<div class="bottom-menu-content-container">
<?php
$announcementDaoImpl = new AnnouncementDaoImpl($pdo);
$announcementList = $announcementDaoImpl->getAllAnnouncementByMostRecent();
foreach($announcementList as $key => $value)
{
echo "<label>". $value. "</label>";
}
?>
</div>
var_dump()
的内容,我得到了ff:
$announcementList
我很感激任何帮助。
谢谢。
---编辑(已解决)---
感谢大家的建议和帮助。只需按照 William Perron 和 ADyson
的建议访问对象的array(1) { [0]=> object(Announcement)#4 (4) { ["id":"Announcement":private]=> int(1) ["title":"Announcement":private]=> string(23) "Test Announcement Title" ["content":"Announcement":private]=> string(25) "Test Announcement Content" ["dateAdded":"Announcement":private]=> string(19) "2018-04-22 16:12:06" } }
方法即可解决问题
get()
对于那些在搜索过程中可能会看到这个问题但也可能来自不同编程语言的人来说,我唯一感到困惑的是对象的投射。
感谢。
---编辑结束----