我试图理解PHP中对象数组的概念。 到目前为止,我只是使用常规数组来遍历记录列表并在表格中显示它们。
我知道我可以使用Object做到这一点,但我不太清楚如何做到这一点。
我理解单个Object实例的概念,其中所有属性都表示从数据库填充的字段及其关联值,可以调用如下:
$objUser->first_name;
现在我想了解一下,根本找不到一个简单的答案就是如何处理让我们说的用户列表,我想在一个页面上显示。我已经看到有ArrayObject,ArrayIterator等,但是根本无法理解它们是如何工作的,所以如果有人可以尝试用一些如何完成上述内容的例子来解释它,那将非常感激。
我正在寻找的是一个包含元素列表的对象,我可以这样循环(如果可能的话):
foreach($objUsers as $objUser) {
echo $objUser->first_name;
}
感谢。
答案 0 :(得分:4)
有可能。让您的对象实现Iterator
界面,然后您就可以本地foreach
覆盖它。 (注意,您需要正确实现推进和回放数组的方法)
Iterator
界面。阅读示例和用户评论。答案 1 :(得分:1)
如果我遇到问题,你问如何处理许多物体?
因此,如果您使用对象数组,例如,来自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;
}
现在你有了一个新的数组,其中key是用户id,value是对象用户。
因此,您可以通过他的ID获取用户信息。
echo $arr_users[$_GET['uid']]->name;
我希望我能帮助你理解一下。