18 对象的遍历:像遍历数组一相查看对象属性

PHP中的对象遍历 traversal(遍历)
通常遍历的是外部可见的public属性 public $var;

语法:
foreach(object askey=>$value){
//语句
}

traversal.php

<?php
class Demo
{
    //在该类中先创建三个公共属性
    public $name;
    public $age;
    public $salary;
    private $sex;//私有属性
    protected $isMarried;//受保护属性
    public static $home;//静态属性

    //构造方法使用固定的方法名(名称是固定的):__construct()  构造方法是创建对象时调用
    //声明构造方法,用来初始化属性  __construct别写错
    public function __construct($name, $age, $salary, $sex, $isMarried, $home)
    {
        //下面是赋值语句
        $this->name = $name;
        $this->age = $age;
        $this->salary = $salary;
        $this->sex = $sex;
        $this->isMarried = $isMarried;
        self::$home = $home;//对静态属性初始化不能用$this;因为它不属于对象,而属于类要用self::加属性名
    }

    //访问私有属性和受保护的属性
    //声明一个query方法,用来在类的内部遍历属性
    public function query()
    {
        print '遍历出对象中的全部属性,包括私有和受保护的:<br>';
        foreach ($this as $key=>$value){
            print $key.'=>'.$value.'<br>';
        }
        //同样在遍历的时候,静态属性无法用循环输出,只能手工的将它打印出来
        print self::$home;
    }
}

//外部访问
$obj = new Demo('peter',28, 3000, 'male', true, '合肥');
//遍历对象
echo '外部访问公共属性:<br>';
foreach ($obj as $key => $value) {
    echo $key.'=>'.$value.'<br>';
}


echo '<hr>';
//在外部也可以访问静态属性,用echo使用类名::$静态属性
echo Demo::$home;//外部使用类名访问静态成员
echo '<hr>';
$obj->query();//遍历出对象中的全部属性
  • 效果图


    image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容