我试图从行结果集中创建对象的关联数组,以成员 id 作为键,但出现一些错误。
addATravelog() 只是 UserLogsAndSOS() 类的一个函数,我想要将其对象放入数组中。
这是我尝试过的:
class UserArraySet {
private $arrayOfUsers = array();
function createArrayForTravelogs($result) {
While($row = $result->next()) {
if(array_key_exists($row['id'], $this->arrayOfUsers)) {
$this->arrayOfUsers[$row['id']] = new UserLogsAndSOS();
}
$this->arrayOfUsers[$row['id']]->addATravelog($row['title'], $row['blog']); //line 72
}
}
}
从对象调用 createArrayForTravelogs() 时,出现以下错误 这是我得到的错误:
Notice: Undefined index: 1 in C:\xampp\htdocs\site\classes\userprofile.php on line 72
Fatal error: Call to a member function addATravelog() on a non-object in C:\xampp\htdocs\site\classes\userprofile.php on line 72
有人可以让我知道如何实现这一目标,我想要这样的东西:
Array (
[1] => objectUserLogsAndSOS1
[5] => objectUserLogsAndSOS2
....
)
其中 key 是来自 $row 的成员 ID。 我还需要检查键是否存在,然后调用该特定对象的函数向其成员添加数据,如果不存在则创建一个对象,然后调用该特定对象的函数向其成员添加数据。
谢谢
最佳答案
只需阅读错误消息:如果已经存在条目,则仅创建 UserLogsAndSOS - 否则,您将在 null 上调用 addATravelog。 也许你忘记了“!”在你的 if 子句中?
关于php 对象关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12282527/