实例测试 PHP 对象的遍历
2019-02-26| 程成| 132| 0| PHP技术

对象的遍历,跟数组的遍历,一样!

其实,只能遍历出对象的 “实例属性数据”。

 

foreach( $对象名  as   $key => $value){

//这里就可以处理$key和$value

//但注意:

1,  $key表示的是对象 的 “属性”,$value是其对应值;

2,  这里能够遍历出来的属性,只能是在该范围中的“可访问属性”(就是要考虑访问控制权限)

}


实例一:


class A{
    public $p1 = 1;
    protected $p2 = 2;
    private $p3 = 3;
    static $p4 = 4;//静态属性
}
$obj1 = new A();
foreach($obj1 as $k => $v){
    echo "<br />属性$k : $v";
}


结果:

属性p1 : 1



实例二:


class B{
    public $p1 = 1;
    protected $p2 = 2;
    private $p3 = 3;
    static $p4 = 4;//静态属性
    function showAllProperties(){
        foreach($this as $k => $v){
            echo "<br />属性$k : $v";
        }
    }
}
$obj2 = new B();
foreach($obj2 as $k => $v){
    echo "<br />属性$k : $v";
}
echo "<br />----------------<br />";
$obj2->showAllProperties();


结果:

属性p1 : 1
----------------

属性p1 : 1
属性p2 : 2
属性p3 : 3


可见实例二通过类中的方法,访问到了遍历对象时不可见的属性,但是静态属性仍然不可见。



×
作者:程成
QQ:492245711