开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第二阶段:对象遍历】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/712/detail/12715
对象遍历
内容介绍:
一、目标
二、概念
三、示例
四、小结
一、目标
理解对象遍历的概念和内容
二、概念
对象遍历:将对象中的所有属性以键值对的形式取出并进行访问,键值对有名字和值
1.对象是一种复合数据类型,对象中真正保存的内容是属性,所以遍历是遍历对象的属性
2.对象的属性本质也是一种键值对关系:名字=值
3.对象遍历就是利用 foreach 对对象中的属性进行取出解析
对象遍历遵循访问修饰限定符的限定:即类外只能遍历所有公有属性
foreach (对象变量 as [属性名变量=>]属性值变量){
#属性名变量代表取出的每个属性的名字
#属性值变量代表取出的每个属性的值
}
三、示例
1.使用 foreach 对对象进行遍历
类里有很多个属性,其中三个公有,一个受保护,一个私有。
#定义类
class Man{
public $name = 'LiLei' ;
public $height = 178;
public $weight = 140;
protected $age = 30;
private $money = 1000;
}
#实例化
$m = new Man();
#遍历
foreach($m as $k => $v){
echo sk . ' : ' . sv . '
'; # $k 为属性名,$v 为属性值
}
实例化之后为了不用再初始化,直接在类里对属性进行初始化。初始化之后就进行遍历输出对象
输出结果里有 name、height 和 weight,而 age 和 money 没有被输出,原因是当前操作虽然叫遍历但是本质是在对象掌握每一个数据取出来,而当前对象的操作是在外部,所以受保护和私有的是不允许在外部访问的。这就是对象的简单遍历。
四、小结
1、foreach 可以对对象像数组一样遍历,因为对象本身属性都是键值对
2、foreach 遍历对象遍历的是对象内部的所有公有属性(在类外:受访问修饰限定符的限制,如果在类的内部方法里访问,可以遍历出所有的属性)
在类内部可以遍历出所有的属性,因为在里面不受限制,在外部限制的原因是需要逐个去取,public 才能取,protected 和 private 取不到,这是 foreach 的特性。