ホームページ >バックエンド開発 >PHPチュートリアル >オブジェクトトラバーサルのための PHP オブジェクト指向コード共有

オブジェクトトラバーサルのための PHP オブジェクト指向コード共有

黄舟
黄舟オリジナル
2017-03-25 10:27:151524ブラウズ

オブジェクトの走査は、配列の走査と同じです。オブジェクトの走査は、インスタンスプロパティの走査を指します。

以下で対象となる属性は、このスコープ内で「アクセス可能な属性」です (アクセス許可を考慮する必要があります)。

<?phpclass A{
    public $p1 = 1;    
    protected $p2 = 2;    
    private $p3 = 3;    
    static $p4 = 4;
}$obj1 = new A();foreach($obj1 as $key => $value){//$key表示对象的属性,$value是其对应的值
    echo "<br />属性$key :" . $value;   
}?>

実行結果:

属性p1 :1

パブリックに変更されたプロパティのみをトラバースできることがわかります。では、オブジェクトのすべてのプロパティをトラバースするにはどうすればよいでしょうか?クラス内にトラバーサル メソッドを記述するだけです。

<?phpclass A{
    public $p1 = 1;    
    protected $p2 = 2;    
    private $p3 = 3;    
    static $p4 = 4;    //静态属性

    function showAllProperties(){
        foreach($this as $key => $value){            
        echo "<br />属性$key :$value";  
        }   
    }
}$obj1 = new A();$obj1->showAllProperties();?>

実行結果:

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

ただし、静的属性はオブジェクトに属していないため、トラバースできません。

以上がオブジェクトトラバーサルのための PHP オブジェクト指向コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。