ホームページ  >  記事  >  バックエンド開発  >  PHP は外部呼び出しクラスのプライベート プロパティを学習します

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

little bottle
little bottle転載
2019-04-26 18:02:372615ブラウズ

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

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

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

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。