PHP は外部呼び出しクラスのプライベート プロパティを学習します

little bottle
リリース: 2023-04-06 12:10:02
転載
2639 人が閲覧しました

この記事では主に外部呼び出しクラスのプライベート プロパティについて説明しますが、これには一定の参照価値があります。興味のある友人はそれについて学び、あなたを助けることを願っています。

外部呼び出しクラスのプライベート属性

最初に、PHP クラスの __get 関数と __set 関数を見てみましょう
試行する場合属性に到達すると、クラスは自動的に __get 関数を呼び出します。
到達不可能なプロパティを設定しようとすると、クラスは自動的に __set 関数を呼び出します。

まず、__get 関数を見てみましょう。到達可能な属性を取得してみましょう:

<?php
    class A{
        public $a=1;
        private $b=2;
        function __get($name){
            echo &#39;you can get &#39;.$name;
        }
    }
    $dy = new A();
    echo $dy->a;
?>
ログイン後にコピー

その戻り値を見てみましょう:

1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

問題ありません。__get 関数は呼び出されません。次に、プライベート到達不能属性

<?php
    class A{
        public $a=1;
        private $b=2;
        function __get($name){
            echo &#39;you can get &#39;.$name;
        }
    }
    $dy = new A();
    echo $dy->b;
?>
ログイン後にコピー

にアクセスすると、次のものが見つかります:

you can get b
ログイン後にコピー

これは、__get を意味します。ここでは 関数が呼び出されます。最初に、到達可能な public 属性も使用する __set 関数を見てみましょう。

<?php
    class A{
        public $a;
        private $b;
        function __set($name,$val){
            echo &#39;you can get &#39;.$name.$val;
        }
    }
    $dy = new A();
    $dy->a = 1;
    echo $dy->a;
?>
ログイン後にコピー

出力を見てください。 :

1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

正常に使用されました。問題ありません。その後、プライベート属性を使用します:

<?php
    class A{
        public $a;
        private $b;
        function __set($name,$val){
            echo &#39;you can get &#39;.$name.$val;
        }
    }
    $dy = new A();
    $dy->b = 1;
    echo $dy->b;
?>
ログイン後にコピー

この時点で、次のことがわかります:

you can get b1

PHP Fatal error:  Cannot access private property A::$b in /usercode/file.php on line 11
ログイン後にコピー

__set 関数は次のとおりです。ここで呼び出され、クラスのプライベート プロパティを使用できないことを通知します。
次に、__set 関数を使用して、プライベート属性の外部使用を実装しましょう:

<?php
    class A{
        public $a;
        private $b;
        function __set($name,$val){
                $this->$name=$val;
        }
        function B(){
            echo $this->b;
        }
    }
    $dy = new A();
    $dy->b = 1;
    $dy->B();
?>
ログイン後にコピー

出力を見てください:

1
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

これは、使用が成功したことを意味します。

関連チュートリアル: PHP ビデオ チュートリアル

以上がPHP は外部呼び出しクラスのプライベート プロパティを学習しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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