PHPのクラスとオブジェクトのアクセス制御(可視性)

黄舟
リリース: 2023-03-12 11:08:01
オリジナル
1850 人が閲覧しました


クラスとオブジェクト > アクセス制御 (可視性)
同じクラスのオブジェクトは、同じインスタンスでなくても、互いのプライベートメンバーと保護されたメンバーにアクセスできます。これは、これらのオブジェクトの内部実装の詳細がわかっているためです。

同じオブジェクトタイプのプライベートメンバーにアクセス

<?phpclass Test{
    private $foo;    public function construct($foo)
    {
        $this->foo = $foo;
    }    private function bar()
    {
        echo &#39;Accessed the private method.&#39;;
    }    public function baz(Test $other)
    {
        // We can change the private property:
        $other->foo = &#39;hello&#39;;
        var_dump($other->foo);        // We can also call the private method:
        $other->bar();
    }
}$test = new Test(&#39;test&#39;);$test->baz(new Test(&#39;other&#39;));?>
ログイン後にコピー
ログイン後にコピー

//発見: インスタンスオブジェクトを渡すことにより、プライベートメソッドとプロパティ

クラスとオブジェクト>アクセス制御(可視性)オブジェクトへの外部アクセス同じクラスのメンバーは、同じインスタンスでなくても、互いのプライベート メンバーと保護されたメンバーにアクセスできます。これは、これらのオブジェクトの内部実装の詳細がわかっているためです。

同じオブジェクトタイプのプライベートメンバーにアクセス

<?phpclass Test{
    private $foo;    public function construct($foo)
    {
        $this->foo = $foo;
    }    private function bar()
    {
        echo &#39;Accessed the private method.&#39;;
    }    public function baz(Test $other)
    {
        // We can change the private property:
        $other->foo = &#39;hello&#39;;
        var_dump($other->foo);        // We can also call the private method:
        $other->bar();
    }
}$test = new Test(&#39;test&#39;);$test->baz(new Test(&#39;other&#39;));?>
ログイン後にコピー
ログイン後にコピー
//発見: インスタンスオブジェクトを渡すことで、プライベートメソッドとプロパティへの外部アクセスが実現します

以上がPHPのクラスとオブジェクトのアクセス制御(可視性)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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