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

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

黄舟
リリース: 2023-03-06 22:06:02
オリジナル
1442 人が閲覧しました

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

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

<?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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート