我正在努力理解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;
我希望我能帮你理解一下。