PHP ArrayObject/ArrayTerator:概念和示例



我正在努力理解PHP中对象数组的概念。到目前为止,我只是简单地使用常规数组来循环浏览记录列表,并将它们显示在say表中。

我知道我可以用Object来做这件事,但我不太确定该怎么做

我理解单个Object实例的概念,该实例具有表示字段的所有属性以及从数据库中填充的相关值,可以称为:

$objUser->first_name;

现在,我想了解的是,但却找不到一个简单的答案,那就是如何处理用户列表,我想在一个页面上显示它。我见过ArrayObject、ArrayIdeator等,但我根本不明白它们是如何工作的,所以如果有人能尝试用几个例子来解释如何实现上述目标,我将不胜感激。

我要找的是一个包含元素列表的对象,我可以像这样循环(如果可能的话):

foreach($objUsers as $objUser) {
    echo $objUser->first_name;
}

谢谢。

这是可能的。让您的对象实现Iterator接口,然后您将能够在其上原生地实现foreach。(注意,您需要正确执行方法来推进和倒带您的阵列)

更多信息:

  • Iterator接口。阅读示例和用户评论
  • Iterators-Anthony@YouTube编程-谁解释得很好

如果我遇到这个问题,你会问如何处理多个对象?

因此,如果您使用对象的数组,例如,来自ORM。

$users_list = new Users();
$arr_users = $users_list->all();

在$arr_users中,您将拥有一个数组,其中包含来自数据库的许多用户对象。每个对象都有一些属性,例如id、name、gender和age。

foreach($arr_users as $single_user) {
    echo $single_user->id;
    echo $single_user->name;
    echo $single_user->gender;
    echo $single_user->age;
}

如果你只需要一个用户:

echo $arr_users[1]->name;

您还可以处理这样的对象数组。首先,从$arr_users中生成新数组;

foreach($arr_users as $single_user){
$arr_user_by_id[$single_user->id] = $single_user;
}

现在您有了新的数组,其中键是用户id和值对象user。

所以你可以通过他的ID获取用户信息。

echo $arr_users[$_GET['uid']]->name;

我希望我能帮你理解一下。

最新更新