PHP学习

PHP中的对象遍历和内置标准类

2017-03-18  本文已影响103人  kangyiii

对象遍历

对象也可以使用foreach语句进行遍历,有2点注意:

  1. 只能遍历属性
  2. 属性的访问权限,若想不关注权限问题,可以将遍历写在类内部的遍历方法中。
    <?php
        class A{
            public $a1 = 1;
            protected $a2 = 5;
            private $a3 = 3;
            //遍历所有属性
            function fetchAllProp(){
                //遍历时key取得属性名,value取得对应值
                foreach ($this as $key => $value) {
                    echo "<br/> 属性:$key = $value";
                }
            }
            //只遍历想要的属性
            function fetchSomeProp($arr){
                foreach ($this as $key => $value) {
                    if(in_array($key,$arr)){
                        echo "<br/> 属性:$key = $value";
                    }
                }
            }
        }
        $o1 = new A();
        $o1->fetchAllProp();
        echo "<hr/>";
        $o1->fetchSomeProp(array('a1','a2'));
    ?>
打印结果

内置标准类

    <?php
    //内置标准类
    $o1 = new stdclass();
    $o1->prop1 = 1;
    $o1->pp2 = 22;
    echo "<br/>o1->prop1:".$o1->prop1;
    echo "<br/>o1->pp2:".$o1->pp2;
    echo "<br/>";
    var_dump($o1);
    ?>
打印结果

从打印结果不难发现,内置标准类的中属性可以动态添加,类似于js。

上一篇下一篇

猜你喜欢

热点阅读